RemoteIPInternalProxy / RemoteIPTrustedProxy

RemoteIPInternalProxy / RemoteIPTrustedProxy

我想我很蠢或者怎么的但我不明白这一点:

我正在使用 RemoteIPHeader X-Forwarded-ForVirtualHost 配置来确定我们 PHP 应用程序中用户的 GEO 位置。

但我也想在 apache 日志中记录客户端的远程 IP。

Apache 组合日志格式如下:

LogFormat "%h (%{X-Forwarded-For}i) %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

根据文献:

RemoteIPTrustedProxy Directive

RemoteIPTrustedProxy 指令将一个或多个地址(或地址块)添加为可信地址,以显示用户代理 IP 的有效 RemoteIPHeader 值。与 RemoteIPInternalProxy 指令不同,此类代理报告的任何内联网或私有 IP 地址,包括 10/8、172.16/12、192.168/16、169.254/16 和 127/8 块(或 IPv6 公共 2000::/3 块之外)均不可信为用户代理 IP,并保留在 RemoteIPHeader 标头的值中。

就我而言,该指令如下所示:

RemoteIPTrustedProxy 172.31.0.0/16

我说的是信任来自这个本地子网的任何代理转发。

但是,当我设置这个时,Apache 停止记录远程 IP,因为转发代理现在有效?

所以如果我设置:

RemoteIPTrustedProxy 10.10.10.10 

上面的 IP 不存在。那么来自的代理服务器172.31.0.0/16现在无效,因此 apache 再次开始记录远程 IP 标头?

请尝试在这里给我一些指导,因为我显然不明白这一点。

多谢 !

答案1

如果您要使用 mod_remoteip,请将 %a 恢复为该格式。

在 bugzilla 中,mod_remoteip 会在从 %{X-Forwarded-For}i 中删除时填充 %a。因此,在具有一个受信任代理的简单情况下,由于 mod_remoteip,%a 将保存用于在 X-Forwarded-For 中查看的值

相关内容