Думаю, я дурак или что, но я не понимаю этого:
Я использую RemoteIPHeader X-Forwarded-For
в конфигурации VirtualHost, чтобы определить географическое положение наших пользователей в нашем приложении PHP.
Но я также хотел бы регистрировать удаленный IP-адрес клиентов в журналах apache.
Формат комбинированного журнала Apache выглядит так:
LogFormat "%h (%{X-Forwarded-For}i) %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Согласно документации:
RemoteIPTrustedProxy Directive
Директива RemoteIPTrustedProxy добавляет один или несколько адресов (или блоков адресов), которым можно доверять, как представление действительного значения RemoteIPHeader IP-адреса агента-пользователя. В отличие от директивы RemoteIPInternalProxy, любой интранет или частный IP-адрес, сообщаемый такими прокси, включая блоки 10/8, 172.16 / 12, 192.168 / 16, 169.254 / 16 и 127/8 (или вне общедоступного IPv6 2000 :: / 3 block) не являются доверенными как IP-адрес агента пользователя и остаются в значении заголовка RemoteIPHeader.
В моем случае директива выглядит так:
RemoteIPTrustedProxy 172.31.0.0/16
Я говорю, что доверяйте любой пересылке PROXY из этой локальной подсети.
НО, когда я устанавливаю этот Apache, перестает регистрировать удаленный IP-адрес, потому что прокси-сервер пересылки теперь действителен?
Итак, если я установил:
RemoteIPTrustedProxy 10.10.10.10
Указанный выше IP не существует. Итак, прокси-серверы от 172.31.0.0/16
теперь недействительны, и поэтому apache снова начинает регистрировать удаленный IP-заголовок?
Пожалуйста, попытайтесь дать мне какое-нибудь руководство, так как, очевидно, я этого не понимаю.
Большое спасибо !
Восстановите% a в этот формат, если собираетесь использовать mod_remoteip.
В bugzilla mod_remoteip заполняет% a, а удаляет из% {X-Forwarded-For} i. Таким образом, в простом случае с одним доверенным прокси% a будет содержать значение, используемое для просмотра в X-Forwarded-For из-за mod_remoteip