wordpress使用CDN后获取访客真实IP

自然
350
文章
391
评论
2019年7月27日12:33:50 2 747字阅读2分29秒

由于用了CDN加速,所以在看wordpress后台评论的时候看到的是CDN的IP而不是访客真是IP,这其实无关紧要。但是最近Limit Login Attempts插件给我发邮件有人试图暴力破解后台密码的时候显示的IP也是CDN的IP,封IP比较麻烦,于是搜索了下找到了解决办法。

wordpress使用CDN后获取访客真实IP 1

php获取用户真实ip原理

我们的wordpress是使用”REMOTE_ADDR”这个函数来获取访客的IP地址的,那么只要我们将获取的函数替换成”HTTP_X_FORWARDED_FOR”,一般就可以了!

让wordpress使用HTTP_X_FORWARDED_FOR获取ip

1.使用notepad++等编辑软件打开wordpress根目录下的wp-config.php文件;

2.在wp-config.php文件的第一个<!--?php标记后面粘贴下面的代码:

  1. if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
  2. {
  3. $list = explode(‘,’,$_SERVER['HTTP_X_FORWARDED_FOR']);
  4. $_SERVER['REMOTE_ADDR'] = $list[0];
  5. }

3.保存修改后的文件;
4.更新您wordpress目录中的wp-config.php文件!

小结

使用CDN后wordpress获取用户真实ip是非常简单地,如果我们使用了服务器防火墙等工具的话,还需要让防火墙服务获取到用户真实ip。大部分waf类产品都是通过读取nginx/apache日志来获取用户ip的,我们只需要让nginx获取到用户真实ip即可,参见《启用CDN后利用ngx_http_realip_module模块获取用户真实IP》和《Nginx环境使用CDN后获取用户真实IP》。

weinxin
自然博客
快来关注一下,一个linux运维爱好者的个人博客!
  • 本文由 发表于 2019年7月27日12:33:50
WP-China-Yes自建wordpress中国区仓库源 Nginx

WP-China-Yes自建wordpress中国区仓库源

WordPress的CDN在19年被国内攻击后(存疑),一直屏蔽了大陆IP的访问,从大陆访问WP的服务都会返回429 Too Many Requests。虽然WP官方社区并不承认屏蔽了大陆地区的访问(...
匿名

发表评论

匿名网友 填写信息

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

评论:2   其中:访客  1   博主  1
    • MAY的SEO博客 MAY的SEO博客 0

      我也是用的这种方法