宝塔面板开启CDN后Nginx获取真实用户IP

用途

配置CDN后无法获取真实用户IP,WAF无法拦截真正的恶意IP,导致CDN IP被拦截影响正常用户访问或WAF无法正常进行拦截工作。遇到此问题可根据本文提供的教程实现获取CDN下的真实访客IP。

 

方法一

如果您的宝塔面板是最新版宝塔面板,可通过宝塔面板自带的CDN来源IP解析获取真实访客IP。

操作步骤:宝塔面板 → 网站 → 高级设置 → CDN来源IP解析

说明:该方法适用于新版本宝塔面板,个别旧版本宝塔面板没有该功能,旧版本宝塔面板可参考方法二。

 

方法二

单网站获取真实访客IP

通过修改网站的Nginx配置文件实现获取真实访客IP。

操作步骤:宝塔面板 → 网站 →  设置 → 配置文件

在你的网站配置文件的server 代码块中(建议加在server_name 下或SSL配置之前),添加以下内容:

server {
    listen 80;
    listen 443 ssl;
    # ... 原有其他参数

    # ---------- 获取真实源IP ----------
    set_real_ip_from 210.16.184.215; # 填写上游IP地址
    set_real_ip_from 210.16.184.0/24; # 填写上游IP段地址
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;
    # --------------------------------

    # ... 其余配置保持不变
}

set_real_ip_from :声明您信任CDN回源IP段(只有来自这些IP的请求,Nginx才会信任其携带的X-Forwarded-For 头)。

 

real_ip_header X-Forwarded-For :从X-Forwarded-For 头中提取真实IP。

real_ip_recursive on :递归解析,从X-Forwarded-For 列表右侧(刚进来的代理 IP)开始向左剔除已信任的 CDN IP,直到找到第一个非信任 IP 作为真实客户端 IP。

全局网站获取真实访客IP

与单网站获取真实访客IP的方法一样,只是从网站配置文件变成了Nginx配置文件。

操作步骤:宝塔面板 → Nginx → 设置 → 配置修改

建议是添加在http 代码块中,最安全、最清晰的位置是:在access_log off; 这一行的下一行添加。server 代码块的上方一行。

保存后重载Nginx配置,这样所有的网站都实现了获取真实访客IP功能了。

 

总结

单网站:放在server 代码块的server_name 下方一行。

全局网站:放在http 代码块的最后一行(access_log off; 下方一行),server 代码块的上方一行。

最简单的还是使用最新版的宝塔面板的CDN真实IP解析功能,感谢宝塔为最新版提供了这么方便的功能。

上一篇 深圳市狐蒂云永久服务器倒闭跑路!又是同样的低价陷阱,又是贪小便宜的上当
下一篇 宝塔面板网站数据定时异地备份教程合集
简单

简单管理员

身在世中静坐,心如明月当空。

本月创作热力图

目录
热门文章

暂无文章