Leon1010

Я в Соц.сетях:

Теги:

Ссылки

Передаем реальный IP в связке Apache + Nginx

В случае, когда на сервере установлена связка Apache + Nginx, где Apache является обработчиком скриптов, а Nginx кеширующим прокси-сервером, апач получает для всех подключений ip сервера, и соответственно пишет его в логах и выдает в переменной $_SERVER['REMOTE_ADDR']
Чтобы вместо IP сервера отображался IP посетителей, необходимо установить модуль rpaf для Apache.

# rpm -ivh http://download.ispsystem.com/repo/centos/release/6/x86_64/mod_rpaf-0.8.2-1.el6.x86_64.rpm

В папке /etc/httpd/conf.d/ появится файл mod_rpaf.conf такого вида:

Заменяем 127.0.0.1 (в строке RPAF_ProxyIPs) на ip вашего сервера.

Перезагружаем Apache:
# service httpd restart

Если это не помогло, продолжаем:
Нам нужен модуль with-http_realip_module для Nginx. Поверяем, есть ли он в комплекте, командой:
# nginx -V

Если нет:

Далее
В /etc/nging/nginx.conf в разделе http, прописываем:

Перезагружаем Nginx:
# service nginx restart


Чтобы узнать реальный IP адрес пользователя, еще можно использовать функцию:

Запись опубликована в рубрике Администрирование с метками , .