<noframes id="9rfbv">

    <form id="9rfbv"><nobr id="9rfbv"><progress id="9rfbv"></progress></nobr></form><address id="9rfbv"><address id="9rfbv"><listing id="9rfbv"></listing></address></address>
        <em id="9rfbv"></em>
          <dfn id="9rfbv"><dl id="9rfbv"><cite id="9rfbv"></cite></dl></dfn>
          <address id="9rfbv"></address>

          <address id="9rfbv"></address>

          <address id="9rfbv"></address>

            使用百度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了!

            打印 | 關閉

            日本字幕有码中文字幕