Мне проще перекопить нашу статью с кор.википедии. На ней не один сервер сейчас работает :))
===============================================================================Итак, чтобы пофиксить проблему с реальными айпишниками клиентов при использовании связки nginx+apache2, нужн-то всего лишь поставить один модуль к апачу и прописать 3 строки в конфигах.
Чтоб избавится от неудобства необходимо лишь доставить модуль mod_rpaf2 к Apache 2.x.x
[root@server /]# whereis mod_rpaf2
mod_rpaf2: /usr/ports/www/mod_rpaf2
[root@server /]# cd /usr/ports/www/mod_rpaf2
Дальше стандартно:
[root@server /]# make install clean
В httpd.conf (конфиг файл Apache) ищем строку:
#LoadModule rpaf_module libexec/apache2/mod_rpaf.so
Де-коментим строку (путь к .so файлу может отличаться)
Далее в тот-же файл httpd.conf в самый низ дописываем 2 строки
RPAFproxy_ips 127.0.0.
RPAFEnable On
Первая строка - это IP прокси (может быть белым IP адресом), вторая - говорит Apache, что rpaf нужно использовать. Что делает rpaf? Он из заголовка X-Forwarded-for делает REMOTE_ADDR.
Собственно остается в конфиге nginx’а в разделе server (виртуального хоста, не в location'e Proxy-преедачи) дописать такие строки:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Далее перезагружаем Apache и nginx
[root@server /]# apachectl restart
[root@server /]# /etc/rc.d/nginx restart
=========================================
Всё.