前言
在使用CDN后,服务器获取到的IP是CDN节点的回源IP。这样就造成了网站日志无法反映真实情况,也对垃圾评论的封禁产生了影响。
以下方法需要CDN支持HTTP_X_FORWARDED_FOR
操作方法
typecho
在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];
}
wordpress
将代码添加到wp-config.php
/**使用CDN后获取访客真实ip*/
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
Emlog
打开/include/lib/function.base.php
找到获取用户ip地址
的函数组,修改为以下内容:
/**
* 获取用户ip地址
*/
function getIp() {
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = $list[0];
}
if (!ip2long($ip)) {
$ip = '';
}
return $ip;
}
Nginx
在Nginx的配置重http
项目下添加:
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
转载请保留原文链接
xzx18691048554
我的微信
微信扫一扫
评论