服务器使用 Nginx 并且上游嵌套了 CDN,难免会遇到一个问题:“请求日志中记录的都是 CDN IP 而非实际请求 IP” 。众所周知,这样不利于网站管理,或者说难以规避一些恶意的风险。
解决这个问题不复杂,只需要在 Nginx 的 Http 段添加如下配置即可:
set_real_ip_from 0.0.0.0/0;real_ip_header X-Forwarded-For;
以宝塔面板为例,在 “软件商店 > 已安装 > Nginx > 右侧设置 > 配置修改 ” 找到如下位置加入配置:
其他备注信息(不会技术的朋友可以忽略):
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 可能不存在,需要自行进行安装并开启,才可配置生效,安装此模块的方法本文不进行赘述。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/7874.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~