Pound & Apache:REMOTE_HOST包含代理主机



我有一个运行Ubuntu 12.04 LTS的服务器,磅2.6和Apache 2.2。我还安装并启用了Apache Module mod_rpaf(从https://github.com/gnif/mod_rpaf安装),以确保在变量远程_ADDR中出现真正的用户IP地址,而不是代理的地址。这可以正常工作,但是MOD_RPAF不会更改变量远程_host。该变量包含" Localhost",而不是给定用户IP地址的主机。

你能帮我吗?

这是我的mod_rpaf配置:

root@perseus ~ # cat /etc/apache2/mods-enabled/rpaf.conf 
RPAF_Enable       On
RPAF_ProxyIPs     127.0.0.1
RPAF_Header       X-Forwarded-For
RPAF_SetHostName  On
RPAF_SetHTTPS     On
RPAF_SetPort      On

谢谢

检查以前关于缺少远程host的问题的答案:

remote_hosts是一个可能被Apache填充或可能不会填充的变量(并且如果未设置它,则更好,否则,它暗示着Apache的DNS查询,以解决每个传入的请求)。因此,您的代码上的任何内容都不应依赖于远程_host。没有应用程序应该假设此变量将在那里并正确填充。

mod_rpaf执行其设计的内容,文档:

将远程_ADDR,https和http_port设置为上游代理提供的值。

现在,您有一个工作的远程_ADDR,这是您应该信任的唯一变量,如果您真的想要它,请在remote_host中进行副本,只需在应用程序代码中进行操作。

Ubuntu LTS 12.04中有一个错误,可以防止RPAF工作。

https://bugs.launchpad.net/ubuntu/source/libapache2-mod-rpaf/bug/1002571

解决方案

在rpaf.conf中替换

<IfModule mod_rpaf.c>

<IfModule mod_rpaf-2.0.c>

最新更新