Apache 2.4 + Nginx и IP-адреса клиентов
Если на сервере вы используете связку Apache и реверс-прокси Nginx, то наверняка сталкивались с проблемой, при которой Nginx не передаёт в Apache ip-адреса клиентов, и они отображаются как локальные 127.0.0.1.
В предыдущих версиях Apache проблема решалась установкой модуля mod_rpaf (libapache2-mod-rpaf). В Ubuntu 14.04 и Debian 8 (Jessie) Apache версии 2.4 и mod_rpaf там не работает как надо. Если и работает, то требует каких-нибудь дополнительных костылей, в которых мне было лень разбираться.
В Ubuntu 14.04 и Debian 8 Apache 2.4 скомпилирован с модулем mod_remoteip, что является рекомендованным решением вышеуказанной проблемы. Однако по каким-то причинам «из коробки» это не работает.
И так, для передачи ip-адресов из Nginx в Apache нужно включить данный модуль.
a2enmod remoteip
Выключите mod_rpaf, если он был включен.
a2dismod rpaf
В /etc/apache2/conf-available/ должен находится конфигурационный файл модуля mod_remoteip «remoteip.conf», однако его там скорее всего нет. Необходимо вручную создать его, прописав в нём следующее:
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1
Включаем конфигурацию.
a2enconf remoteip
Перезагружаем Apache.
service apache2 restart
Если Apache в логах продолжает указывать адреса 127.0.0.1 как внешние, то в «apache2.conf» нужно добавить следующее:
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
Если после всего этого адреса по-прежнему выглядят как 127.0.0.1, то стоит проверить конфигурацию хостов в Nginx на наличие следующей строки:
proxy_set_header X-Real-IP $remote_addr;
Если раньше у вас всё работало, и проблема возникла только после перехода на Apache 2.4, то конфигурация Nginx в порядке и её трогать ненужно.
Источник: http://www.newalive.net/164-apache-24-nginx-i-ip-adresa-klientov.html