WordPress 经 EO 代理后获取真实客户端 IP 的方法

预计阅读 3 分钟

不同场景下 EO 代理WordPress 源站 IP 处理方式

 

场景一:被封锁的请求(Meta 爬虫 / 恶意 IP)

 

规则引擎直接在 EO 边缘节点返回 403,请求根本不会到达源站。

 

这些请求本来就不需要获取 IP 位置,封锁是正确的。

 

场景二:正常用户请求(未被拦截)

 

EO 会通过以下请求头真实客户端 IP 透传给源站:

 

X – Forwarded – For: 真实用户 IP, EO 节点 IP

 

EO – Connecting – IP: 真实用户 IP

 
你的 WordPress 源站只需读取 X – Forwarded – For 的第一个 IP 即可获得真实地理位置。
 

需要注意的一点

 
WordPress 默认读取 $_SERVER [‘REMOTE_ADDR’],经过 EO 代理后这个值会变成 EO 节点的 IP,而不是用户真实 IP。
 

解决方法

 
  1. 在 WordPress 的 wp – config.php 中加入:
 
php
 
// 信任 EO 节点,使用 X - Forwarded - For 获取真实 IP
if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
    $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = trim($ips[0]);
}
复制
 
 
  1. 或者安装支持代理头的插件(如 WP Cloudflare Super Page Cache 的同类产品),让 IP 地理位置功能正常工作。
© 版权声明
THE END
喜欢就支持一下吧
点赞5567支持作者 分享
评论标题 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容