使用 Apache 的 remoteip 模块和 HTTP Forwarded 标头

使用 Apache 的 remoteip 模块和 HTTP Forwarded 标头

我在 Nginx 反向代理后面运行 Apache,并希望使用remoteip模块。

将这些信息从 Nginx 传递到 Apache 的官方标准标头是Forwarded。但是,Forwarded与常见的(但非标准的) 相比, 除了原始 IP 本身之外还包含其他信息X-Forward-For。这似乎会给 带来问题remoteip

使用以下 Apache 配置

RemoteIPHeader Forwarded
LogFormat "%a <Forwarded: %{Forwarded}i>" forwarded
CustomLog /var/log/apache2/forwarded.log forwarded

我的日志条目如下:

127.0.0.1 <Forwarded: for=172.16.16.1; host=my-host:443; proto=https>

也就是说,即使存在标头,%a也不会更新为原始 IP 。Forwarded

如果我将反向代理配置为仅使用标头传递 IP X-Forwarded-For,并配置remoteip为使用该字段,那么一切都会按预期工作。

但是,我更喜欢使用标准推荐的标题——有没有办法做到这一点?

我正在使用 Apache 2.4.10。

答案1

Forwarded目前不支持该标头remoteip标头。请参阅这张票在 Apache 的问题跟踪器中。

相关内容