使用又拍云(UPYUN)CDN之后IP问题

前段时间优化网站,使用了又拍云的CDN,之后发现访客IP几乎都是同一个地址,而且垃圾评论又多了起来,因为之前按IP屏蔽的机器人又活跃了起来,于是,简单修改一下规则。

国内大多数的CDN在回源访问的时候都会带上X_FORWARDED_FOR请求头,里面包含有HTTP的请求端真实的IP。但UPYUN CDN在回源的时候没有带X_FORWARDED_FOR请求头,所以原使用HTTP_X_FORWARDED_FOR获取访客真实IP的参数失效。

UPYUN CDN 回客户源的时候会带这个 X_REAL_IP 的请求头,值为用户实际访问 CDN 的来源 IP 地址。同时为了兼容部分服务端程序,UPYUN CDN还额外还提供了 CLIENT_IP 请求头的支持,其值和 X_REAL_IP 相同。所以如果站点使用UPYUN做CDN加速,可以通过HTTP_CLIENT_IP或者HTTP_ X_REAL_IP来代替原HTTP_X_FORWARDED_FOR获取访客真实IP。

划重点:通过HTTP_CLIENT_IP或者HTTP_ X_REAL_IP来代替原HTTP_X_FORWARDED_FOR获取访客真实IP

/*使用upyun后获取访客真实IP */
if(isset($_SERVER[‘HTTP_CLIENT_IP’]))
{
$list = explode(‘,’,$_SERVER[‘HTTP_CLIENT_IP’]);
$_SERVER[‘REMOTE_ADDR’] = $list[0];
}

/*使用upyun后获取访客真实IP */
if(isset($_SERVER[‘HTTP_X_REAL_IP’]))
{
$list = explode(‘,’,$_SERVER[‘HTTP_X_REAL_IP’]);
$_SERVER[‘REMOTE_ADDR’] = $list[0];
}

该文章转载自:堕落的鱼https://www.duoluodeyu.com/2328.html

转载请标明出处:落羽日记 » 使用又拍云(UPYUN)CDN之后IP问题

赞 (2) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

   
抱回家