Page 1 of 2
$_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 3:49 pm
by SergP
Здравствуйте!
Нашел уже множество тем по похожим проблемам, но мне ничего не помогло.
$_SERVER['REMOTE_ADDR'] - выдает внутренний IP сервера (192.168.1.XXX).
При этом:
1) $_SERVER['HTTP_X_REAL_IP'] - выдает IP клиента
2) $_SERVER['HTTP_X_FORWARDED_FOR'] - выдает IP клиента
3) В логах apache - пишет IP клиента
В разделе IP панели IP задан как 192.168.1.XXX->79.***.***.*** (второй IP - внешний статистический, за NATом)
В rpaf.conf прописано
Code: Select all
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 ::1 192.168.1.XXX 79.***.***.***
RPAFheader X-Forwarded-For
RPAFheader X-Real-IP
Остальные настройки как поставила панель (копал только rpaf.conf, но конфиг по умолчанию тоже не работал).
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 4:40 pm
by SergP
Временно решил проблему подключением модуля remoteip (a2enmod remoteip)
И конфигурацией:
Code: Select all
<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1 192.168.1.XXX
</IfModule>
rpaf меняет в логах IP на настоящий, а этот модуль в REMOTE_ADDR
Надеюсь кто-то подскажет иное решение, использовать два похожих по функциям модуля, по-моему, не хорошо...
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 4:41 pm
by Shaman2
SergP wrote:Здравствуйте!
Нашел уже множество тем по похожим проблемам, но мне ничего не помогло.
$_SERVER['REMOTE_ADDR'] - выдает внутренний IP сервера (192.168.1.XXX).
При этом:
1) $_SERVER['HTTP_X_REAL_IP'] - выдает IP клиента
2) $_SERVER['HTTP_X_FORWARDED_FOR'] - выдает IP клиента
3) В логах apache - пишет IP клиента
В разделе IP панели IP задан как 192.168.1.XXX->79.***.***.*** (второй IP - внешний статистический, за NATом)
В rpaf.conf прописано
Code: Select all
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 ::1 192.168.1.XXX 79.***.***.***
RPAFheader X-Forwarded-For
RPAFheader X-Real-IP
Остальные настройки как поставила панель (копал только rpaf.conf, но конфиг по умолчанию тоже не работал).
А разве панель ставить модуль mod_rpaf ? У меня почему-то данного модуля при тестировании нового сервера с панелью не оказалось.
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 4:50 pm
by SergP
А разве панель ставить модуль mod_rpaf ? У меня почему-то данного модуля при тестировании нового сервера с панелью не оказалось.
Ммм... Панель ставилась на сервер с уже установленным апачем, но не использовавшимся ни разу (сервер был "чистый" и апач из репозитория, полагаю панель ставит оттуда же при установке).
Вы вселили в меня сомнения =)
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 4:52 pm
by imperio
Shaman2, а какая у вас версия ОС?
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 6:14 pm
by Shaman2
imperio wrote:Shaman2, а какая у вас версия ОС?
CentOS 6.5 64bit
по крайней мере в httpd.conf я не нашел упонимания о модуле rpaf
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 6:17 pm
by imperio
Там используется mod_extract_forwarded
/etc/httpd/conf.d/mod_extract_forwarded.conf
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 6:29 pm
by Shaman2
imperio wrote:Там используется mod_extract_forwarded
/etc/httpd/conf.d/mod_extract_forwarded.conf
Спасибо за предупреждение. А он управляется тем же "RPAFenable On" или другой командой?
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 6:32 pm
by Shaman2
Кстати неплохо бы на сайте описать подобные тонкости. Так как гугл часто выдает рекомендации на тот же mod_rpaf, а панель использует другой модуль. Также и с толи nginx толи апач, непомню, но что-то из двух у вас перекомпилировано для использования с /home. Кстати напомните что именно?
Re: $_SERVER['REMOTE_ADDR'] выдает IP сервера
Posted: Mon Sep 01, 2014 6:36 pm
by imperio
А он управляется тем же "RPAFenable On" или другой командой?
Нет, там не используется rpaf в принципе. Там совсем другой модуль, но по функционалу они одинаковы.