====== Nginx, Apache, REMOTE_ADDR 127.0.0.1 ======
Ситуация: требовалась стандартная настройка Nginx в роли реверс-прокси, Apache 2.4.x в роли бэкенда, сверху все это придавлено Bitrix. При эксплуатации выяснилось, что в Битриксе (Рабочий стол -> Настройки -> Инструменты -> Журнал событий) все IP адреса представляли собой 127.0.0.1 хотя, казалось бы, все было корректно настроено.
В процессе разборок выяснилось, что в Apache 2.4.x модуль rpaf работает криво (Version: 0.6-12) и требуется использовать имеющийся стандартный remoteip. Но в таком случае либо включаем remoteip и видим корректные адреса в админке Битрикса и 127.0.0.1 в логах веб-сервера, либо с точностью до наоборот - в логах красота, а в Битриксе любуемся на 127.0.0.1
Что же, будем скрещивать ужа и ежа: оба модуля будут работать вместе.
===== Apache =====
Ставим модуль rpaf:
# apt-get install libapache2-mod-rpaf
# a2enmod rpaf
# cat /etc/apache2/mods-enabled/rpaf.conf
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1 ::1
RPAFheader X-Real-IP
Включаем модуль remoteip:
# a2enmod remoteip
# cat /etc/apache2/mods-enabled/remoteip.conf
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1
Перезапускаем apache2:
# service apache2 restart
===== Nginx =====
Добавляем в настройки сайта:
...
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
...
перезапускаем nginx:
# service nginx restart
Все, можно проверять логи.
{{tag>apache nginx rpaf remoteip REMOTE_ADDR 127.0.0.1}}