在Ubuntu升级之后,Nginx前端,Apache后端的mod_rpaf问题

我正在为静态文件运行Nginx前端,并使用Apache的mod_rpaf在PHP和Passenger上代理Apache后端,在后端设置正确的远程IP地址。 一切工作正常,直到我升级到Ubuntu 12.04(精确)。 现在Apache报告来自127.0.0.1的所有连接。

这是相关的configuration。 这里没有什么改变与升级。

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> 

我在我的Apache LogFormat指令中使用了%{X-Forwarded-For}i ,并且访问日志显示了正确的远程地址,所以我知道Nginx正确地传递了地址。

phpinfo()testing中,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

刚刚处理这个自己。 周五确认了一个Ubuntu bug。 您可以通过更改来重新开始工作:

 <IfModule mod_rpaf.c> 

 <IfModule mod_rpaf-2.0.c> 

在/etc/apache2/mods-available/rpaf.conf中

Debian Jessie似乎已经弃用了mod_rpaf,并且进一步的开发停止了。 切换到mod_remoteip,它是Debian Jessie中的默认模块。

只是对这个问题的更新。 mod_rpaf使用的variables的格式已经改变了–Apache将拒绝从上面列出的那些开始(RPAFenable,RPAFsethostname,RPAFproxy_ips,RPAFheader)。

新格式如下:

 LoadModule rpaf_module modules/mod_rpaf.so RPAF_Enable On RPAF_ProxyIPs 127.0.0.1 10.0.0.0/24 RPAF_SetHostName On RPAF_SetHTTPS On RPAF_SetPort On RPAF_ForbidIfNotProxy Off