心血来潮弄了个评论区显示访客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
- 最新
- 最热
只看作者