关于WordPress博客或者typecho博客开启cdn无法获取访客真实ip

心血来潮弄了个评论区显示访客IP,但刚测试的时候显示的是cdn节点的IP,于是翻了翻教程得到如下解决方法,留个笔记防止以后升级丢失教程。

先来讲讲cdn的工作原理:
简单四个字概括就是”就近原则”,什么意思呢,你可以去ping下本站域名,你会发现ip栏里面不止一个ip,也就是说,系统会匹配离你最近的cdn服务器打开,如果离你最近的服务器打不开就会回源(回到源服务器),所以,不同的人访问的是不同的服务器,就会造成ip的错误,那么怎么解决呢?

如果你是wordpress,就在主机根目录找到wp-config.php文件,在里面添加如下代码:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
      $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
      $_SERVER['REMOTE_ADDR'] = $list[0];
    }

如果你是typecho,就在根目录找到config.inc.php,在最后添加如下代码:

/** 防止CDN造成无法获取客户真实IP地址 */
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
    {
        $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
        $_SERVER['REMOTE_ADDR'] = $list[0];
    }

最后刷新cdn缓存(部分cdn刷新后短暂时间无法访问属于正常现象)

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
提问 共1条

请登录后发表评论

    • 头像大狮子0