使用百度CDN后apache无法获取真实IP问题解决

本站开启了百度CDN,开启固然有一定好处的,但是开启之后带来了新的问题

apache的access.log无法得到用户的真实IP,因为百度cdn将用户的IP隐藏,你得到的只是百度的CDN节点的IP

百度CDN的IP列表:https://ticket-baidu.kf5.com/posts/view/148628/

对于这个问题,百度了一下,没有找到非常好用的,也有类似的解决方法,但是测试了下没成功!

专门给百度CDN提交了工单,他们工程师回复如下


您好,您可以通过如下方式查看真实IP:为解决这个问题,可以通过在云加速转发的HTTP头信息中增加 X-Forwarded-For 信息,用于记录客户端的真实IP,这时web服务器的日志就可以使用 $http_x_forwarded_for变量记录远程客户端的真实IP。格式如下:
Apache添加LogFormat:

ASP

PHP

JSP

 


 

我是使用apache作为服务器的,就按照上面的信息添加新的LogFormat,

在VirtualHost中添加或修改

测试了下,终于OK了!

发表评论

电子邮件地址不会被公开。 必填项已用*标注