获取CDN后的真实客户IP

开始

简单介绍一下,目前接的项目有一个网站因安全问题,使用了CDN,但使用CDN后,程序读取的IP都是CDN节点的IP,故程序无法使用

经过

首先我从CDN提供商入手,得知CDN提供商为腾讯云,通过百度检索以及官网咨询,得知腾讯云CDN默认开启 X-Forwarded-For
接着进入服务器,修改Nginx配置
在Nginx全局配置中,在 http{ 后加入

1
2
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;

set_real_ip_from:默认为空,可设置为任意 IP 或 IP 段,实例中的 0.0.0.0/0 表示覆盖了所有网段
real_ip_header:默认值是 X-Real-IP,可以设置为任意字符串,一般建议改用 X-Forwarded-For。

之后重载服务器配置,测试访问后,成功获取ClientIP。

参考资料

图解 nginx 如何获取真实的来源 IP
*如果对Nginx获取IP方式不清楚的,非常推荐阅读这一篇文章。

封面飞机:MiG-17 米格17战斗机(苏联)


获取CDN后的真实客户IP
http://www.evec.cc/2022/10/19/Get_Real_IP/
作者
前夕
发布于
2022年10月19日
许可协议