当前位置:论坛首页 > Linux面板 > 讨论

分享一个开启nginx环境下使用CDN仍可获取真实用户IP的代码

发表在 Linux面板2019-11-20 16:08 [复制链接] 5 3925

网站使用了阿里云的CDN,不管宝塔的防火墙开启还是关闭,日志文件里面获取的都是阿里云节点的IP,记录不到真实用户IP,搜了下找了段代码结果可以获取到用户真实的IP了,分享下:
修改nginx的配置文件,在http{ 后加入如下两行代码即可:

set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
重启nginx生效。


使用道具 举报 只看该作者 回复
发表于 2019-11-20 16:18:36 | 显示全部楼层
可以啊 大佬
使用道具 举报 回复 支持 反对
发表于 2019-11-20 17:28:02 | 显示全部楼层
Nginx防火墙里面勾选CDN就是正常客户IP了
使用道具 举报 回复 支持 反对
发表于 2019-11-20 17:36:48 | 显示全部楼层
Hax0412 发表于 2019-11-20 17:28
Nginx防火墙里面勾选CDN就是正常客户IP了

经测试,即便勾选了有时候也不生效。
使用道具 举报 回复 支持 反对
发表于 2019-11-21 10:35:51 | 显示全部楼层
kangs 发表于 2019-11-20 17:36
经测试,即便勾选了有时候也不生效。

那这个得和官方反馈下,看看是哪里的问题
使用道具 举报 回复 支持 反对
发表于 2019-11-21 11:05:10 | 显示全部楼层
这其实和CDN有关,如果是nginx的话,一般日志里面会用这两个变量获取远程IP地址
$http_x_forwarded_for  经过CDN的用户真实IP
$remote_addr  经过反向代理的真实IP串

防火墙的网站CDN开关要打开,同时CDN设置里面要有下面两个header
x-forwarded-for
x-real-ip       

这样设置是肯定可以获得真实IP地址了~
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表