要解决Apache httpd(mod_proxy)在X-Forwarded-For链中丢弃/忽略第三个IP地址的问题,可以通过以下步骤:
/etc/httpd/conf/httpd.conf
或/etc/apache2/apache2.conf
。mod_proxy
模块,可以通过在配置文件中查找LoadModule proxy_module
来确认。
块,该块定义了需要使用mod_proxy
的虚拟主机。
块内部添加以下配置:ProxyPreserveHost On
ProxyVia On
块内部添加以下配置,该配置将X-Forwarded-For标头中的第三个IP地址传递给后端服务器:SetEnvIf X-Forwarded-For "^([^,]+),([^,]+),([^,]+)" thirdip=$3
RequestHeader set X-Forwarded-For %{thirdip}e env=thirdip
现在,Apache httpd将在X-Forwarded-For链中保留第三个IP地址,并将其传递给后端服务器。