gpt4 book ai didi

php - 来自用户而不是 Nginx 反向代理服务器的 REMOTE_ADDR IP

转载 作者:行者123 更新时间:2023-12-04 16:45:06 27 4
gpt4 key购买 nike

我已经阅读了很多关于这个主题的帖子并尝试了几种解决方案,但没有找到一个有效的位置。

我在我的 Apache 服务器前面设置了一个 Nginx 反向代理。当我的 php 应用程序使用 远程地址 函数它获取 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;
}

帮助表示赞赏?

最佳答案

访问者的 IP 地址应该可以使用

$_SERVER['HTTP_X_REAL_IP'];

代替
$_SERVER['REMOTE_ADDR'];

如果要替换 REMOTE_ADDR header ,在您的 NGINX 配置中尝试此操作:(并且不要忘记重新加载/重新启动您的 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_set_header REMOTE_ADDR $remote_addr;
proxy_pass 172.19.0.4;
}

关于php - 来自用户而不是 Nginx 反向代理服务器的 REMOTE_ADDR IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44145688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com