如何解决Nginx嵌套CDN请求时的日志记录问题

  • A+
所属分类:其他源码

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

下面我将分享如何使用Nginx来解决CDN嵌套请求的IP记录问题。
首先,需要在Nginx服务器上添加以下配置:

对于一些朋友来说,可能需要一些额外的提示才能解决Nginx嵌套CDN请求时的IP记录问题。以下是一些有用的提示:

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.如果你使用宝塔面板,则需要使用 ngx_http_realip_module 模块支持获取真实IP。宝塔环境下安装的Nginx自带此模块,不需要额外安装。如果是默认编译安装的Nginx,可能不存在此模块,需要自行安装并启用才能使配置生效。

  • 我的微信公众号
  • 扫一扫关注
  • weinxin
  • 我的新浪微博号
  • 扫一扫关注
  • weinxin
小辉博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: