我在 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 的问题跟踪器中。