如何解决评论显示CDN IP不显示正常IP
接入 CDN 后 IP 错乱的原因
没开 CDN 时:
访问者 → 直接访问源站
服务器拿到的 REMOTE_ADDR = 用户真实 IP
开启 接入CDN(CloudFront/ EdgeOne / Cloudflare / 其他 CDN)后:
访问者 → CDN 节点 → 我的源站服务器
服务器看到的来访 IP = CDN 节点 IP
而真实访客 IP,CDN 会放在 HTTP 请求头中传递给源站:
EdgeOne:X-Forwarded-For
Cloudflare:X-Forwarded-For / CF-Connecting-IP
但 Nginx 和 Typecho 默认不会读取这个头,所以导致全站 IP 全部为CDN节点IP。
我只需要在站点 Nginx 配置中加入三行代码,全站就自动恢复了真实 IP,包括:评论 IP、后台日志、登录 IP、防火墙记录、所有插件统计 IP。
编辑站点 Nginx 配置,在 server{} 内部添加
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
保存后重载 Nginx.
全部回复 0