При работе связки nginx+apache, запросы на back end (apache) приходит с IP адреса, на котором расположен nginx, а не с IP пользователя, с которого на самом деле пришёл запрос.
Это создаёт определённые неудобства при работе систем критичных к «правильному» определению ip адресов, таких как: системы авторизации, форумы, блоги и т.д.
Чтобы исправить этот недочет рекомендуется установить расширение для httpd — mod_rpaf:
- Дистрибутив находится по адресу http://www.stderr.net/apache/rpaf/download/
- Скачиваем, распаковываем и переходи в папку модуля:
wget http://www.stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz tar -xzvf mod_rpaf-0.6.tar.gz cd mod_rpaf-0.6
- Для дальнейшей работы нам понадобиться apache утилита «apxs» и компилятор «gcc»
# yum install httpd-devel # yum install gcc
- Согласно мануалу разворачиваем расширение mod_rpaf:
# apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
- Если все прошло успешно, то прописываем в httpd.conf, сразу за последним «LoadModule»
LoadModule rpaf_module modules/mod_rpaf-2.0.so RPAFenable On RPAFproxy_ips 127.0.0.1 ваш_другой_ip_адрес RPAFheader X-Real-IP RPAFsethostname On
- На front end, в настройках необходимого хоста, прописываем уже несколько иные строки.
proxy_pass — это ваш адрес apache сервера.
proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_intercept_errors off; proxy_set_header Range ""; proxy_read_timeout 120s;