Игорь, для сервера планируется сделать средства контроля за
производительностью? Что-то типа server-status, как в apache.
access_log держать включенным нет возможности - сотни запросов в секунду
:(
--
Andrei Nigmatulin
GPG PUB KEY 6449830D
Доброго времени суток,
Смотрел я долго на lighttpd и выбрал nginx, хоть и нужен SSL тоже :)
(стабильный, но ssl в nginx еще не пробовал).
И возникла единственная проблема на Апаче 2.0.х - реальный IP адрес на
backend сервере.
Для апача 1.3.х - такой модуль есть, который написал Игорь Сысоев.
После раздумий и чтения документации по mod_headers и остальной
компании, понял, что это не поможет.
Тогда я зарылся в гугль и после 20 минут лирического диалога с полем
поиска нашел нужный модуль, им оказался mod_rpaf
Лежит он здесь - http://stderr.net/apache/rpaf/
Я его скачал и поставил, а ставится он очень просто с помощью apxs:
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
После этого добавляем его строкой в апач:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
А директивы его описаны в README файле, который идет к нему. Их всего три:
- RPAFEnable - включить модуль
- RPAFproxy_ips - IP адрес(а) фронт-энд сервера(-ов)
- RPAFsethostname - доводит до ума поле HOST, как на фронтэнде.
Можете создать просто mod_rpaf.conf и положить его в conf.d/..., текст
следующий:
---------------------------- mod_rpaf.conf ----------
#
LoadModule rpaf_module modules/mod_rpaf-2.0.so
#Configuration Directives:
RPAFenable On
# Enable reverse proxy add forward
RPAFproxy_ips YOUR_PROXY_SERVER IP_LIST_OR_ONE_IP
# which ips are forwarding requests to us
#RPAFsethostname On
# let rpaf update vhost settings
# allows to have the same hostnames as in the "real"
# configuration for the forwarding Apache
------------------------------------------------------
RPAFproxy_ips - тут список IP вашего фронтенда или фронендов, пример:
RPAFproxy_ips 127.0.0.1 192.168.1.45 182.142.35.24
Далее добавляем в конфигурацию nginx (раздел server), следующую строчку:
proxy_add_x_forwarded_for on;
Теперь nginx передает бэкэнду IP клиента в поле: X-Forwarded-For, а на другом конце его подхватит mod_rpaf и сделает свое грязное дело ;) :)
Теперь оба сервера перезапускаем любым способом, кому как нравится. :)
И Voila, как говорят знакомые бразильцы :)
Все это проделано на Fedora Core 2 и работает.
С Уважением,
Дмитрий.
-
Owner and Founder of Remote Admin Service
http://remote-admin-service.encrypted-life.net
Здравствуйте, nginx-ru.
Игорь, хотелось бы узнать, в какой версии можно будет прописывать
условия для rewrite, планируется ли это вообще? В частности интересует
защита от хотлинка(на базе переменных окружения).
--
С уважением,
L0rda mailto:l0rda@l0rda.biz
Привет,
А по какой причине nginx может давать некоторое количество 408? Причем это
случается только с Opera или FF, с MSIE не замечено ни разу. Ошибки появляются
как на контенте, отдаваемом самим nginx, так и с backend.
--
Best regards,
Yevgeniy mailto:yk@cifnet.com
Сейчас nginx когда видит в URL %3F, то перекодирует его в '?' и всё,
что следует после этого, считает аргументами. Апач %3F считает обычным
символом и не рассматривает его как начало аргументов. Похоже, имеет смысл
сделать поведение, совместимое с Апачём.
Игорь Сысоев
http://sysoev.ru
Добрый день,
Не менялся синтаксис rewrite и компании ?
Конструкция вида:
rewrite ^/(intranet/)(.*)$
/$1 last;
Дает в контейнеры $1 и $2 - пустоту, если я дописываю /ssssss$1, то
ходит /ssssss и все
Мне надо убрать виртуальный префикс из пути, чтобы потом грузить статику по
правильному пути.
И вопрос, в какой лог пишется rewrite ?
С Уважением,
Дмитрий.
Игорь, насколько я помню, ты как-то писал, что резолвинг имени бэкенда
происходит только один раз, при запуске. Нельзя ли сделать, чтобы он
проходил при каждой попытке проксирования, чтобы "умный" днс-сервер
возвращал адрес наиболее пригодного на данный момент сервера? mod_accel
такое вроде умел, хотелось бы подобное в nginx увидеть. :-)
Добрый день,
Проблема у меня с nginx 1.1.13, не сжимает статику в хостах, которые
прописаные ему, а не проксировать апачу. Проксированный контент сжимает, а
свою статику не жмет :(
Пример конфига:
http {
include /xxxxxx/nginx/conf/mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
.................... дальше хосты с проксированием ...............
server {
listen xxx.xxx.xxx.xxx:80;
server_name remote-admin-service.encrypted-life.net;
location / {
root /xxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxx/html;
access_log /xxxxxxxx/xxxxxx/access_log;
}
}
html, txt страницы с такого хоста не жмет, отдает в неужатом виде :((
Я пробовал уже и gzip_types перечислять, все равно не дает в сжатом виде.
Это лечится ?
С Уважением,
Дмитрий.
Изменения в nginx 0.1.13 21.12.2004
*) Добавление: директивы server_names_hash и server_names_hash_threshold.
*) Исправление: имена *.domain.tld в директиве server_name не работали.
*) Исправление: параметр лога %request_length записывал неверную длину.
Комментарий.
server_names_hash_threshold задаёт минимальное число имён для пары адрес:порт,
при котором используется хэширование. По умолчанию - 50.
server_names_hash задаёт размер хэша, по умолчанию 1009. Если имён не много,
скажем, 500, то можно поставить что-то вроде 101. Для размера лучше брать
простые числа.
Обе директивы работают только на уровне http.
Игорь Сысоев
http://sysoev.ru