【发布时间】:2017-10-24 01:10:17
【问题描述】:
我已经阅读了很多关于这个主题的帖子并尝试了几种解决方案,但没有找到一个有效的位置。
我在我的 Apache 服务器前面设置了一个 Nginx 反向代理。当我的 php 应用程序使用 REMOTE_ADDR 函数时,它会获取 Nginx 服务器的 IP 而不是用户。
我使用的是 Apache 2.4.10,所以应该安装 module_remoteip.c。但它没有加载。
因此我安装了 rpaf_module。看起来这个模块安装正确, phpinfo() mod_rpaf-2 与加载的模块一起显示。我修改了 /etc/apache2/mods-available/rpaf.conf 文件,内容如下:
<IfModule rpaf_module>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 172.19.0.5 # ip of Nginx server
RPAFheader X-Forwarded-For
</IfModule>
我的 Nginx 配置如下所示:
location / {
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass 172.19.0.4;
}
感谢您的帮助?
【问题讨论】: