Проверьте журнал доступа и выяснили, что IP-адрес, который был зарегистрирован от пользователей, пришел с обратного прокси-сервера.
Настройка такая
www.abc.com -> reversed proxy to my server 123.123.123.123
Есть ли способ настроить журнал доступа http для отслеживания фактического входящего IP-адреса за обратным прокси-сервером?
Вы ищете X-Forwarded-For
заголовок. Любой достойный прокси добавит этот заголовок в HTTP-запросы, которые он пересылает.
Если весь ваш сайт находится за этим прокси, вам необходимо найти соответствующий LogFormat
для него, что обычно выглядит так:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
и добавьте к нему заголовок (или замените %h
который будет вашим обратным прокси-сервером) вот так:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Если вы не хотите переопределять combined
формат журнала, затем создайте свой:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_proxy
CustomLog /path/to/logfile.log combined_proxy
%{<header>}i
это способ добавить любой другой заголовок запроса в файлы журнала.
Примечание: Этот заголовок не всегда будет одним IP-адресом. Если запрос прошел более чем через один прокси, вы получите список в форме, разделенный запятыми: client, proxy1, proxy2
; вам может потребоваться обновить скрипты или парсеры журналов, чтобы учесть это.
Да, есть.
Для текущей версии Apache: mod_rpaf
Для всего, что было позже, чем ветка 2.3: mod_remoteip
Оба они заменят REMOTE_ADDR
переменная в запущенном процессе Apache с последним IP из входящего X-Forwarded-For
заголовок с любого доверенного обратного прокси. Этот IP-адрес также будет занесен в ваши стандартные журналы Apache без необходимости их изменения.
Эта переменная также будет доступна вашему PHP-коду как $_SERVER['REMOTE_ADDR']
где обычно находится удаленный IP-адрес.
Единственная конфигурация, которая требуется для этих модулей, - это предоставить им список доверенных обратных прокси.
В целях безопасности, эти заголовки можно добавлять, удалять, подделывать и, возможно, искажать. Нет гарантии, что любой IP-адрес, полученный из этого заголовка, является правда IP-адрес посетителя. Последний в списке (который добавлен вашим доверенным обратным прокси) - единственный, в котором вы можете быть уверены.