WebWost WebWostbeta

CentOS и remoteip

Рабочий способ узнавать реальный IP на сервере с OS CentOS в связке Apache+Ningx

Al-Sher

Всем привет! Сегодня у меня возникла проблема, что при связке Apache+Nignx мы получаем ip сервера в глобальной переменно $_SERVER, то есть в $_SERVER["REMOTE_ADDR"]. Данная проблема связана с тем, что Apache получает страницу от Nignx, следовательно от локального сервера.

Для исправления данной проблемы раньше использовался модуль mod_rpaf, но, как я успел понять, в Apache 2.4.6 нет данного модуля. Поискав немного информации я наткнулся на модуль realip2, но и его у меня не оказалось(устанавливаться он так же отказывался).

Ну тогда я решил полазить по модулям, которые уже были установлены и наткнулся на remoteip, который пришел на замену вышеперечисленным модулям.

И так, как же его настроить, чтобы он возвращал реальный ip пользователя, а не ip локального сервера? Для этого мы должны "включить" данный модуль в файле конфигурации apache(httpd.conf), то есть выполнить команду

sudo nano /etc/httpd/conf/httpd.conf

Далее мы должны найти место, где заканчивается подключение модулей. У меня это было после строк

<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>

После подключения модулей мы подключаем наш:

<IfModule remoteip_module>
    RemoteIPHeader X-Forwarded-For
    RemoteIPTrustedProxy 127.0.0.1
</IfModule>

На этом заканчивается настройка Apache, но так же нам лучше проверить конфигурацию Nignx. Для этого используем команду

sudo nano /etc/nginx/nginx.conf

Ищем строку

proxy_set_header  X-Real-IP $remote_addr;

Если данной строки нет, то мы должны вписать её в location /

На этом я заканчиваю данную инструкцию по замене mod_rpaf модулем remoteip. Спасибо за внимание.

0 комментариев

Новый комментарий