Ubuntu 升级后 Nginx 前端、Apache 后端的 mod_rpaf 问题

Ken*_*enn 10 ubuntu nginx proxy apache-2.2 mod-rpaf

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

这是相关的配置。升级后这里没有任何变化。

nginx:

proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
Run Code Online (Sandbox Code Playgroud)

mod_rpaf:

<IfModule mod_rpaf.c>
    RPAFenable On
    RPAFsethostname On
    RPAFproxy_ips 127.0.0.1 ::1
    RPAFheader X-Forwarded-For
</IfModule>
Run Code Online (Sandbox Code Playgroud)

%{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

jet*_*boy 10

只是自己处理这个。周五确认了一个 Ubuntu 错误。您可以通过更改以下内容来重新工作:

<IfModule mod_rpaf.c>
Run Code Online (Sandbox Code Playgroud)

<IfModule mod_rpaf-2.0.c>
Run Code Online (Sandbox Code Playgroud)

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