$_SERVER ['REMOTE_ADDR'] и связка Nginx+Apache

Если вы используете nginx в качестве прокси сервера вместе с апачем, то возможно сталкивались с проблемой записи IP адреса клиента в переменную REMOTE_ADDR.
Он записывает только IP адрес вашего сервера, а IP клиента отдаёт в переменную REAL_IP.

Чтобы исправить это необходимо сделать следующее:

  1.  Удаляем старый неподдерживаемый модуль rpaf.
    # apt-get remove libapache2-mod-rpaf
  2. Создаём remoteip.conf:
    # nano /etc/apache2/mods-available/remoteip.conf
    <IfModule mod_remoteip.c>
    RemoteIPHeader X-Real-IP
    RemoteIPInternalProxy 127.0.0.1
    RemoteIPInternalProxy xxx.xxx.185.66 // server ip ваш
    </IfModule>
  3. Включаем данную конфигурацию в Apache
    # a2enmod remoteip
    # service apache2 restart 

    Теперь REMOTE_ADDR будет отдавать реальный IP клиента.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *