Главная |  Новости |  Продукты |  Программы |  Статьи |  Контакты |  
При работе связки nginx+apache, HTTP запросы сначала обрабатываются с помощью nginx, а потом передаются apache. В этом случае HTTP запрос происходит с IP адреса, на котором расположен nginx, а не с IP, с которого на самом деле пришёл запрос. Это создаёт определённые неудобства: в скриптах форумов/блогов/гостевых книг/etc IP пользователей, оставивших ответ на странице, указываются как IP сервера.


mod_rpaf служит для того, чтобы восстановить настоящий IP после обработки запроса nginx'ом.

Как установить mod_rpaf:

1. Устанавливаем пакет httpd-devel:

yum -y install httpd-devel


2. Скачиваем и устанавливаем mod_rpaf:

cd /usr/local/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Обращаю ваше внимание все пакеты необзодимые для сборки данного модуля, должны быть одной и тоже версии что и сама система, т.е. либо это i386 или x64_86, иначе собрать не получится, будте внимательны
3. Далее нужно создать файл конфигурации mod_rpaf - /etc/httpd/conf.d/rpaf.conf
и добавить в него следующие строки:

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yy

где xx.xx.xx.xx и yy.yy.yy.yy - IP адреса вашего сервера. Если на сервере более двух IP, добавьте их по той же аналогии.

Далее требуется перезапустить Apache, для этого выполните команду

service httpd restart


4. В nginx внутри блока http {} должны быть указаны строки:

proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

если модифицируется nginx.conf, следует перезапустить nginx:

/etc/init.d/nginx stop
/etc/init.d/nginx start


5. Как проверить, работает ли установленный модуль.

На любом из доменов, которые расположены на Вашем сервере, разместите файл test.php с содержимым:

<?
echo $_SERVER['REMOTE_ADDR'];
?>


Далее зайдите по ссылке http://domain.tld/test.php, где domain.tld - имя вашего домена. Если как результат отображается IP, отличающийся от IP вашего сервера, модуль работает корректно.



Комментарии: (4)   Рейтинг:



Copyright(R) 2001-2009. ThizLinux Laboratory Limited. All Rights Reserved.