如果你在使用 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,可能不存在此模块,需要自行安装并启用才能使配置生效。
请登录后发表评论
注册
请登录后查看评论内容