使用CDN后如何在源站获取真实IP?(宝塔面板)

在宝塔面板的使用场景里,当我们为网站部署了 CDN 加速服务后,会碰到一个棘手的问题:服务器日志默认记录的并非真实访客的 IP,而是 CDN 节点的 IP。这对于网站流量分析工作来说,无疑是一大阻碍,无法精准获取访客信息,让流量分析变得困难重重。别着急,接下来就为大家详细介绍多种有效的解决办法,帮助大家在享受 CDN 加速优势的同时,成功获取真实的访客 IP。

一、Nginx 配置优化方案

优化日志格式

打开宝塔面板中的 Nginx 配置界面,进入 http 模块区域。在这里,我们可以添加特定的日志格式定义,让日志能够记录下真实的访客 IP。添加内容如下:

log_format cdn_access '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent"';
图片[1]-使用CDN后如何在源站获取真实IP?(宝塔面板)-清风论坛

要是觉得上述方式有些复杂,还有更简便的方法,直接在 Nginx 中添加下面这段代码就行:

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

二、合理配置防火墙策略

宝塔防火墙有个很实用的功能 ——CDN 支持功能。我们要做的就是启用它,具体操作步骤如下:进入宝塔防火墙的相关界面,找到 CDN 识别功能并打开,同时关闭 CC 防御。这样设置后,防火墙就能在一定程度上协助我们获取真实的访客 IP 了。

验证设置效果

设置完成后,怎么知道是否成功获取到真实访客 IP 了呢?很简单,通过查看访问日志文件里的请求记录就能判断。正常情况下,记录格式应该类似这样:

192.168.1.1 - - [08/Sep/2021:10:12:41 +0800] "GET / HTTP/1.1" 200 1234 "-" "Mozilla/5.0..."

要是看到这样的记录,那就说明设置生效啦,成功获取到了真实访客 IP。

操作注意事项

  1. 修改完 Nginx 配置后,一定要记得重启 Nginx 服务,这样新的配置才能生效,否则设置就白费功夫了。
  2. 不同的 CDN 服务商,其配置要求可能会有所不同。有些 CDN 服务商除了上述操作外,还需要进行额外的回源验证配置,大家可以根据所使用的 CDN 服务商的具体要求进行操作。
  3. 为了确保获取真实访客 IP 的功能一直正常运行,建议定期检查日志格式是否被覆盖。如果日志格式被意外修改,可能会导致无法正确获取真实 IP,所以定期检查很有必要。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容