|
|
最近,本人負(fù)責(zé)的其中一個站點收錄出現(xiàn)了異常,趁著周末有空講述一下整個診斷過程。核心問題有兩點,服務(wù)器架構(gòu)和網(wǎng)站程序架構(gòu)導(dǎo)致的;本篇僅分享服務(wù)器架構(gòu)導(dǎo)致的收錄異常。
首先,介紹一下自己。本人就職于深圳某企業(yè),長期混跡于乙方外包公司,眾所周知seo外包公司接的是絕大部分是小企業(yè)網(wǎng)站,這些網(wǎng)站做的關(guān)鍵詞往往也僅是改個TDK就完成排名的工作。
再加上,目前絕大部分中小站點的架構(gòu)很簡單,開源CMS+單一云服務(wù)器(虛擬主機(jī))+CDN(這還是有點運維能力公司)。鑒于以上經(jīng)驗,導(dǎo)致本人完全沒有意識到服務(wù)器架構(gòu)方面也能出現(xiàn)問題。
一、收錄異常的發(fā)現(xiàn)
從(圖1)可以和明顯的看出,在3月中下旬收錄是偏向正常的,問題出現(xiàn)在3.31日-4.25日之間出現(xiàn)了浮動,也就是說,這個區(qū)間一定是站點出現(xiàn)了問題導(dǎo)致收錄異常。
1.jpg (33.51 KB, 下載次數(shù): 61)
下載附件
2020-8-24 11:10 上傳
本人開始按常規(guī)方法排查,特別是服務(wù)器日志有些參數(shù)沒有排除注意,以至于導(dǎo)致了問題發(fā)現(xiàn),具體如下:
1.1、站長平臺模擬爬蟲抓取,正常。
1.2、搜索引擎爬蟲抓取數(shù)量在提升,偏向正常。這里有異常,排查偽蜘蛛爬蟲在抓數(shù)據(jù),真實百度爬蟲確實也在增長。
1.3、核心關(guān)鍵詞排名浮動,但偏向且上升趨勢靠前,目前核心大詞處于前5名,正常。
1.4、服務(wù)器日志分析,爬蟲對應(yīng)的request_uri值(相對地址),暫屬正常,請看下文。
1.5、服務(wù)器日志是阿里云的日志,http請求,7.18日、7.19日、7.20日以及7.26日出現(xiàn)小面積服務(wù)器500訪問錯誤;但最多只出現(xiàn)有限的時間收錄異常,不至于大范圍不收錄。
在服務(wù)器訪問日志分析中,一般需要注意的項是:爬蟲抓取時間值,爬蟲頁面URL值,爬蟲在頁面抓取順序,時間內(nèi)爬蟲抓取數(shù)量,另一說蜘蛛IP值有權(quán)重高低之分(本人不確定,故不參考)
頁面URL值:一般服務(wù)器日志是相對地址,本人診斷出現(xiàn)的問題在于忽略host值,真實抓取URL應(yīng)該是,host+request_uri值組合。
頁面抓取順序:可檢驗網(wǎng)站架構(gòu)的爬行情況,大概可以知道爬蟲在網(wǎng)站頁面中的爬行順序,可以輔助使用爬蟲軟件或者開發(fā)經(jīng)典爬蟲(PY,PHP等)的爬行情況作為參考
時間內(nèi)爬蟲抓取數(shù)量:檢驗網(wǎng)站頁面總量和時間段內(nèi)抓取量的占比,判斷網(wǎng)站的受歡迎程度。
說到這里,交代一下站點的服務(wù)器架構(gòu):
用的是負(fù)載均衡,文件服務(wù)器+數(shù)據(jù)服務(wù)器+前端服務(wù)器,數(shù)據(jù)服務(wù)器全部數(shù)據(jù)是由API接口、GET方式前端和app使用,網(wǎng)站URL是相對地址。服務(wù)器之間自然用的也是內(nèi)網(wǎng)通訊。
綜上,可能大家也看出有忽略的參數(shù),是1.4中提到的日志host值,因為是相對地址,host+request_uri才是抓取的完整地址。一直忽略的Host值,原來是API的二級域名(圖2)
2.jpg (79.55 KB, 下載次數(shù): 57)
下載附件
2020-8-24 11:10 上傳
說到這里,大家可能已經(jīng)基本上可以確定知道原因了。
就是百度根本沒有抓取到真實的頁面URL,實際上抓取的是API域名+request_uri,
即假設(shè)數(shù)據(jù)庫服務(wù)器API給前端渲染的數(shù)據(jù)路徑是api.name.com,走內(nèi)網(wǎng)IP,
抓取到的頁面URL為:https://api.name.com/post/1.html
真實應(yīng)該是外網(wǎng)IP的URL:https://www.name.com/post/1.html
既然核心問題已把握30%,下一步自然是數(shù)據(jù)證明,主要從幾個點。
1、翻開發(fā)日志記錄
2、4月前后的服務(wù)器日志整理對比
從1中發(fā)覺,4.13號負(fù)載均衡的數(shù)據(jù)服務(wù)器api取消代理,這樣造成的后果是前端直接抓取了host主機(jī)值為api域名下的數(shù)據(jù)在前端渲染,因為是直接使用內(nèi)網(wǎng)IP沒經(jīng)過代理,同時api二級域名為host主機(jī)值。
從2中發(fā)覺,4月前后日志的host主機(jī)值出現(xiàn)了改變,由www.name.com變成了api.name.com。
最終,問題就出現(xiàn)在host主機(jī)為api的站點,沒有使用代理,也就是說只要api站點通過代理變成www的二級站點渲染即可。如果沒有使用代理,百度GET返回的頁面是內(nèi)網(wǎng)IP,抓取到的也就是https://api.name.com/post/1.html 這個URL。
解決方案:
1、負(fù)載均衡的數(shù)據(jù)服務(wù)器api接口使用代理
2、Head區(qū)增加標(biāo)簽
3、前端渲染的HTML使用絕對路徑
4、開發(fā)個API接口推送數(shù)據(jù)
本文完。鑒于本人僅是SEO,運維能力有限,單機(jī)服務(wù)器配置下站可以,負(fù)載均衡只是略微聽過,如有運維方面錯誤之處請見諒。
作者:深圳傳說 |
溫馨提示:
1、本內(nèi)容內(nèi)由作者投稿,版權(quán)歸原作者所有!
2、本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。
3、本內(nèi)容若侵犯到你的版權(quán)利益,請聯(lián)系我們,會盡快給予刪除處理!
|