解决Nginx和CDN嵌套上的请求日志记录问题

2023-05-13 2806阅读 6评论

  如果你使用了 Nginx 服务器并且将CDN嵌套到上游中,有时候你会遇到一个问题:请求日志中记录的都是CDN IP而不是实际请求IP。这可能会导致一些不便,如难以管理网站或规避一些恶意风险。

解决Nginx和CDN嵌套上的请求日志记录问题  Nginx真实ip 请求日志记录 第1张

  但是这个问题的解决并不复杂,只需在Nginx的HTTP段添加如下配置:

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就是真实IP。 

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

文章版权声明:除非注明,否则均为小宜技术猫原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 6 条评论,2806人围观)
网友昵称:小宜技术猫
小宜技术猫V博主地板
2023-05-19 来自广东 回复
厉害
网友昵称:666
666V铁粉凉席
2023-05-18 来自广东 回复
hh
网友昵称:请教
请教V铁粉板凳
2023-05-17 来自四川 回复
知道在那个地方去添加 这个代码吗
网友昵称:小宜技术猫
2023-05-17 来自广东 回复
@请教 在Nginx配置上添加[Coffee]
网友昵称:小宜技术猫
小宜技术猫V博主椅子
2023-05-13 来自广东 回复
测试
网友昵称:666
666V铁粉沙发
2023-05-13 来自未知IP 回复
可哈黑
取消
微信二维码
微信二维码
支付宝二维码