我正在运行用于静态文件的Nginx前端,并使用Apache的mod_rpaf在后端上设置正确的远程IP地址,以代理PHP和Passenger的Apache后端。一切正常,直到我升级到Ubuntu 12.04(精确版)。现在,Apache报告所有来自127.0.0.1的连接。
这是相关的配置。升级没有改变。
Nginx:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
mod_rpaf:
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 ::1
RPAFheader X-Forwarded-For
</IfModule>
我%{X-Forwarded-For}i
在Apache LogFormat指令中使用,访问日志显示了正确的远程地址,因此我知道Nginx正确传递了该地址。
在phpinfo()
测试中,HTTP_X_FORWARDED_FOR显示正确的远程地址,但REMOTE_ADDR为127.0.0.1。这也反映在PHP应用程序中,例如WordPress注释。
我尝试将Nginx和mod_rpaf切换到X-Real-IP,但没有任何效果。
我错过了什么变化吗?
相关版本信息,从Ubuntu存储库安装的所有内容:
Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6