使用百度CDN后apache無法獲取真實IP問題解決

時間:2019/10/11 21:28:01,點擊:0

本站開啟了百度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:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedbaiducdn

ASP

Request.ServerVariables("HTTP_X_FORWARDED_FOR")

PHP

$_SERVER["HTTP_X_FORWARDED_FOR"]

JSP

request.getHeader("HTTP_X_FORWARDED_FOR")





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

在VirtualHost中添加或修改


CustomLog logs/openwrtdl-access-cdn.log combinedbaiducdn

測試了下,終于OK了!

打印 | 關閉

企业管理类院校排名 河内五分彩的官方开奖网站 竟彩足球彩票胜平负 极速赛车是骗局吗官网 吉林快三57期开奖结果 体彩p5综合走势图专业版 一分赛车是不是官方的 浙江快乐彩票十二选五 中国福彩双色球开奖结果 2021排列三走势图排列 AG电子竞技俱乐部总部 甘肃快3怎么看出豹子 体育彩票排列5综合走势图百度百度 天津11选5网购彩搜1980彩 辽宁35选7买的人多吗 快乐十分怎么玩合适 qq飞车幸运赛车