|
由于網站啟用了百度云加速,現在裝了蜘蛛記錄插件 發現會有百度蜘蛛每秒好幾次的高頻繁的去抓取網站分類信息偽靜態的地址(使用的1314分類信息偽靜態插件),由于高速頻繁的抓取 導致PHP解析過多 最終CPU接近爆滿。訪問卡頓。 關掉偽靜態插件就可以緩解很多 但這不是最終解決方案。
想知道是百度站長平臺那邊的設置抓取頻次壓力過大,還是有人模仿百度蜘蛛進行攻擊,但是百度云加速最近改變了策略,所有蜘蛛抓取網站內容都經過百度云加速的CDN節點進行回源,那么也就無法判斷這些節點IP后的真實IP是否為百度的蜘蛛。
如圖
111.png (134.81 KB, 下載次數: 9)
下載附件
2020-6-23 01:15 上傳
這是apache訪問日志記錄的蜘蛛信息
101.227.207.54 - - [23/Jun/2020:00:00:42 +0800] "GET /thread-htm-fid-48-sortid-3-banben-6-jdfwkey-ug3vt3-yuyan-1-zuoyong-8.html HTTP/1.1" 200 19339 "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
經查證 確實是百度云加速的節點 如下圖
2.png (106.8 KB, 下載次數: 6)
下載附件
2020-6-23 01:17 上傳
下面是百度云加速客服給出的查看真實IP的解決方案
真實IP:為解決這個問題,可以通過在云加速轉發的HTTP頭信息中增加 X-Forwarded-For 信息,用于記錄客戶端的真實IP,這時web服務器的日志就可以使用 $http_x_forwarded_for變量記錄遠程客戶端的真實IP。格式如下:
Nginx
'$http_x_forwarded_for - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" ';
Apache
格式如下:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
ASP
Request.ServerVariables("HTTP_X_FORWARDED_FOR")
PHP
$_SERVER["HTTP_X_FORWARDED_FOR"]
JSP
request.getHeader("HTTP_X_FORWARDED_FOR")
問題來了,這個HTTP頭信息中增加 X-Forwarded-For 信息怎么添加?
我嘗試將這個apache加載到discuz后臺-全局-seo信息-其他的頭部信息里
如下圖
23.png (74.23 KB, 下載次數: 10)
下載附件
2020-6-23 01:21 上傳
這樣以腳本的形式添加在這里 是沒有用的,apache訪問日志 還是顯示的CDN節點的IP 并沒有顯示真實的蜘蛛IP 無法查證 是否為百度的真實蜘蛛,如果是百度真實蜘蛛 我就去站長平臺反饋。
有大神知道如何添加這個HTTP頭信息嗎? 感謝!?。?!
補充一下
還是放在 偽靜態規則里??????????請賜教
——————————————————————————————————————————————————
后續更新 問題已解決
1.png (119.86 KB, 下載次數: 9)
下載附件
2020-8-19 20:44 上傳
問題已解決,如果你是win系統 用的是apache upupw環境包 可以在apache日志格式這里 添加紅線處內容 日志會自動多出來一列IP為訪客真實IP 第一列為CDN節點IP
添加內容 %{X-Forwarded-For}i 注意前后都有空格間隔非常簡單,至于其他軟件 如寶塔有沒有相關設置我不太清除。
2.png (61.28 KB, 下載次數: 0)
下載附件
2020-8-19 20:50 上傳
但是這樣分析日志就無法進行讀取真實IP了。比如360星圖 他只能分析第一列的CDN IP
可以在上面日志格式那里吧系統默認的最前面的%h刪除 這樣日志就可以只統計真實IP 從而讓日志分析軟件正常運行。
我知道答案
回答被采納將會獲得 1 貢獻 已有5人回答
|
|