-
Website
http://blog.kovyrin.net -
Original page
http://blog.kovyrin.net/2006/05/18/nginx-as-reverse-proxy/ -
Subscribe
All Comments -
Community
-
Top Commenters
-
for you health
3 comments · 1 points
-
jamiew
1 comment · 6 points
-
qu1j0t3
1 comment · 1 points
-
mkv to dvd
1 comment · 1 points
-
Scoundrel
9 comments · 1 points
-
-
Popular Threads
Возникла ситуация:
есть один тяжёлый проект
бежит это на nginx
добавили несколько дополнительных серверов с FastCGI
происходит потеря сессий :( как с этим бороться?
Заранее благодарен за ответ.
1) хранение сессий на nfs-share
2) хранение сессий в базе данных
I'm reverse proxying to an Apache server...when I run a script that takes a lil' while to produce some input (e.g. an Amazon product fetching script) nginx will sometimes not present the output, even though the Apache script is still churning away in the background. What timeout setting do I need to adjust in this situation?
Расскажите плз чем вы такие красивые блок схемы строите?
у нас на сервере крутятся два сайта.
скажем, q5Video.ru и q5Magazine.ru
в конфиге nginx я прописываю код:
server {
listen 81.17х.х.хх:80;
server_name q5Magazine.ru www.q5Magazine.ru;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
# Static files location
location ~* ^.+.(midi|wav|flv|bmp|rtf|js)$ {
root /spool/www/members_ng;
}
и в кофиге апача прописываю
listen 127.0.0.1:8080
что здесь неправильно?
Would my setup be less effective under heavy load conditions?
I am under the impression that a time consuming 200MB request proxied through Apache to nginx will not keep one of Apache's large child processes busy that could be better used to process dynamic content. While nginx serves the static file, Apache is free to handle it's dynamic files. Please correct me if I'm wrong!
The configuration like:
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
who can help me this
А в конфиге nginx есть возможность построить условия (анализ HTTP-заголовков), на которых уже решать, что сделать с запросом, проксировать его апачу, или выдать 403?
use nginx as frontend
use two tomcats as backend web servers
location /
proxy_pass
http://127.0.0.1:8080/;
http://127.0.0.1:9000/;
listen 80
Как быть в этой ситуации ?
Спасибо !
У меня на серваке 8 виртуальных хостов, с которых раздаётся контент(музыка, кино и т.д.) Хотел при помощи нгинкс разгрузить апач, который временами виснет из-за огромного (около 2000) количества процессов. Перевесил каждый виртуальный хост на 127.0.0.1 на разные порты. Настроил нгинкс по Вашему примеру.
После запуска смог зайти более менее быстро только на один сайт. Побродить по нему и тем более что-то качнуть не удалось.((
Помогите разобраться в чём причина таких тормозов и как ускорить систему.
Система
Intel(R) Pentium(R) 4 CPU 2.40GHz
Память - 2 Гб
Ось -Fedora Core 5 - 2.6.20-1.2320.fc5
Apache - 2.2.2
Nginx - 0.5.26
Конфиг полностью совпадает с Вашим, за исключением папки root, конечно )
Жду ответа...
Is't possible to configure it to use DNS resolution for the backend servers?
I would like to have Nginx to relay http/https for many services on different servers in the backend, but not having to add seperate sections for each server/service.
Or will I lose something by doing that "if possible"?
Why wouldn't you have Nginx as the front and the backend server?
Is there any disadvantage to using Nginx for the dynamic content as well?
у меня крутится около полутора десятков виртуальных хостов через nginx и apache.
Nginx сидит на 80-м порту, apache - на 8080. Никаких проблем, всё отлично.
Очень большие тормоза были при первом заходе на сайт (после установки nginx как frontend) - сайт открывался больше двух минут. Но как только он открылся, всё стало работать очень шустро и быстро и до сих пор радует меня скоростью.
Конфиг - примерно такой же, как в статье, единственное, proxy_redirect использую.
Так что Вы, скорее всего, просто не до конца разобрались в конфигурации - советую обратиться к первоисточникам, и не использовать чужие конфиги.
А ктонибудь делал связку nginx + java?
у меня была такая же ситуация. очень большой iowait.. оказалось что нагрузка сильно растет если отдавать файлы из пхп скриптов fopen, fread.. как только переделал XAccel нагрузка резко упала и использование нгинх оправдалось.
У меня такой вопросик ...
Есть сайты на MS SharePoint`е в которих забиты внутрение адреса типа http://serv1.localnet/.
И есть сервак на FreeBSD с выходом в инет, который имеет свой адрес http://some.host.net/.
Возможно ли настроить nginx на замену адресов с http://serv1.localnet/ на http://some.host.net/ в страничках, и будет ли это так работать ?
anyone ever configured nginx with haproxy? i would like to use nginx to serve static content and have haproxy load-balancing my mongrels serving 3 clusters. so that nginx gets request (serves if static) if not goes to HA for a proxy to the backend mongrel server.
is the reporting of visitors statistics.
Where will you take that information from? From the first (frontend)
web server? or from the servers behind it? What information will be
given? Will all the reports look like if the only visitor was the
reverse proxy server?
А есть способ сделать так, чтобы nginx вместо того, чтобы обслуживать:
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
root /spool/www/members_ng;
}
обслуживал все файлы, кроме .jsp и случая когде не указано расширение. Т.е. запрос к папке идёт.
Ну и папку /WEB-INF заоодно закрыть :-)
Таким образом, после редиректа, получится, что $HTTP_SERVER_VARS[PORT] = 8080, но это пол беды, т.к. это мало кому важно, гораздо страшнее следующая проблема:
При проксировании SSL мы получаем SERVER ENVIRONMENT
HTTPS = null
и
SERVER_PORT = 8080
При редиректе на какой-нибудь пеймент метод(не на все, но такое бывает), кастомер отредиректиться обратно(после проверки кредитки) на порт 8080. Плюс Corner of Trust и подобные штуки для верификации SSL-сертификата, внушающие доверие покупателям тоже могут не работать... :)
Решается такая проблема магическим RewriteRule'ом:
RewriteEngine on
RewriteCond %{HTTP:SSL} YES
RewriteRule .* - [E=HTTPS:on,L]
RewriteRule .* - [E=SERVER_PORT:443,L]
good luck :)
> haproxy?
www.nginxhosting.com
когда пишу
Listen 127.0.0.1:80
то он выдает ошибку
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
что делать?
nginx, слушает somehost:6969
бэкэнд, на который перекидываются запросы
proxy_pass http://127.0.0.1:4850;
суть проблемы, бэкэнд посылает Location: /welcome, однако Proxy его перезаписывает как somehost/welcome, при этом теряется порт (6969)
собственно, что надо сделать с proxy_redirect, чтобы либо он оставался относительным, либо не терялся номер порта?
заранее спасибо
Since, 70-80% of my sites are PHP based this practically dismisses nginx for me.
Or I am doing something wrong?
location / {
proxy_pass http://localhost:8888/
....
....
}
Попробуй обработать 504 ошибку в nginx ;)
Для полноты автору следовало бы описать и настройку Apache чтобы он не конкурировал с nginx, и нормально ловил подачи nginx
I used nginx load balancers and nginx as reverse proxy.
Here's the structures
nginx (lb) -> nginx (reverse proxy) -> lighttpd
On nginx reverse proxy, I already got nginx (lb) Ips.
How can I get the remote host address on nginx?