主机知识库
分享服务器知识

Nginx环境下获取CDN真实请求IP

服务器使用 Nginx环境,网站并且嵌套了CDN,难免会遇到一个问题:请求日志中记录的都是 CDN IP,而非实际请求IP 。这样我们就分不清是搜索引擎蜘蛛抓取,还是用户访问的,或者是被采集了。

本篇文章就专门来解决此问题,步骤如下:

只需要在 Nginx 的”Http段“添加如下配置即可,宝塔面板,如下图:

获取CDN真实请求IP设置

代码:

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

关于这两段代码释义:

1、“set_real_ip_from”是指上游代理转发服务器的 IP 地址或者说 IP 段。可以理解为,这些 IP 过来的请求全部做真实 IP 获取处理,类似一个白名单,此教程中设置的 0.0.0.0/0 是指全部请求 IP;

2、”real_ip_header“ 是指从那个请求头里面获取真实的 IP,大多数情况下上游 CDN 都会发送 HTTP_X_FORWARDED_FOR 请求头,这个头里面包含的是来路的 IP 串,如 “127.0.0.1,127.0.0.2,127.0.0.3” 一般来说获取第一个不为空的 IP 就是真实的;

3、此教程是以宝塔为例,宝塔环境下安装的 Nginx 自带了 ngx_http_realip_module 这个支持获取真实 IP 的模块,如果是默认编译安装的 Nginx 可能不存在,需要自行进行安装并开启,才可配置生效,安装此模块的方法本文不进行赘述。

赞(6)
文章名称:《Nginx环境下获取CDN真实请求IP》
文章链接:https://www.cmy.cn/host/18309.html
版权声明:茶猫云所有发布的内容,部分为原创文章,转载请注明来源!网络转载文章如有侵权请联系我们解决!
最新优惠:茶猫云VPS服务器