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
| 归档时间: |
|
| 查看次数: |
5356 次 |
| 最近记录: |