CDN某個(gè)地域節(jié)點(diǎn)訪問(wèn)異常的解決方法
發(fā)布時(shí)間:2021-04-21 點(diǎn)擊數(shù):668
問(wèn)題描述
關(guān)于CDN某個(gè)地域節(jié)點(diǎn)訪問(wèn)異常有以下幾種場(chǎng)景。
- 場(chǎng)景一:使用ping命令訪問(wèn)CDN加速域名失敗。
- 場(chǎng)景二:源站更改文件后,從CDN節(jié)點(diǎn)中獲取的仍是更改之前的文件。
- 場(chǎng)景三:訪問(wèn)CDN加速域名后獲取的為非其站點(diǎn)文件內(nèi)容。
問(wèn)題原因
關(guān)于不同問(wèn)題場(chǎng)景的問(wèn)題原因如下。
-
場(chǎng)景一的原因如下。
- 本地網(wǎng)絡(luò)異常。
- 節(jié)點(diǎn)網(wǎng)絡(luò)異?;虮还?。
- 本地到運(yùn)營(yíng)商中間鏈路某路由節(jié)點(diǎn)故障。
-
場(chǎng)景二的原因如下。
- 刷新未生效。
- 讀取的是本地瀏覽器緩存。
- 被本地運(yùn)營(yíng)商劫持。
-
場(chǎng)景三的原因如下。
- 訪問(wèn)的非CDN節(jié)點(diǎn)。
- 被某種原因劫持。
解決方案
以下是不同問(wèn)題場(chǎng)景的解決方案。
場(chǎng)景一:使用ping命令訪問(wèn)CDN加速域名失敗
- 排查加速域名是否在沙箱節(jié)點(diǎn)中,由于沙箱中的域名無(wú)法保證服務(wù)穩(wěn)定性,所以會(huì)存在使用ping命令后,網(wǎng)絡(luò)不通的情況,此時(shí)沙箱可能正在受到攻擊。
-
檢測(cè)訪問(wèn)的IP是否為CDN的節(jié)點(diǎn)IP。關(guān)于如何檢測(cè),請(qǐng)參考診斷工具。如果訪問(wèn)的節(jié)點(diǎn)不是CDN節(jié)點(diǎn)IP,請(qǐng)核實(shí)如下幾種情況。
- 本地是否有開(kāi)啟代理軟件,因?yàn)橛行┐碥浖?huì)強(qiáng)制更改訪問(wèn)域名的解析。
- 是否綁定Host文件,將加速域名強(qiáng)制解析到了某個(gè)IP。
- 本地存在DNS劫持,可以在本地開(kāi)啟殺毒安全軟件,并且固定本地所使用的IP為223.5.5.5、114.114.114.114的DNS或者其他安全的DNS。如果劫持情況比較嚴(yán)重,并且無(wú)法解決,則需要向網(wǎng)絡(luò)服務(wù)提供商投訴要求解決劫持。
- 在本地使用ping命令,連接該節(jié)點(diǎn)IP,以及使用站長(zhǎng)工具(例如17ce.com或者聽(tīng)云平臺(tái))在全國(guó)探測(cè)該節(jié)點(diǎn)IP是否存在問(wèn)題,即各個(gè)地區(qū)訪問(wèn)該節(jié)點(diǎn)均延遲均較大或者不通,本地也ping不通該節(jié)點(diǎn),則該節(jié)點(diǎn)存在問(wèn)題的可能性較大,該前提是域名確實(shí)不在沙箱中。
-
在本地的Windows主機(jī)使用tracert,或者在Linux主機(jī)使用traceroute,用來(lái)探測(cè)該IP并提供完整探測(cè)截圖,根據(jù)得到的截圖定位整個(gè)網(wǎng)絡(luò)鏈路的問(wèn)題點(diǎn)。
注:MTR信息判斷方法如下。
- 目的節(jié)點(diǎn)丟包率為100%,并且從目的節(jié)點(diǎn)往前逐個(gè)檢查,直到第一個(gè)開(kāi)始丟包的節(jié)點(diǎn)(中間不能有丟包率為0%的路由節(jié)點(diǎn)),則第一個(gè)開(kāi)始丟包的路由節(jié)點(diǎn)是問(wèn)題路由的可能性較大。詳細(xì)排查步驟,請(qǐng)參見(jiàn)ping丟包或不通時(shí)鏈路測(cè)試說(shuō)明。
- 請(qǐng)阿里云技術(shù)支持進(jìn)行排查,在此期間可更改本地DNS為其他DNS(例如223.5.5.5或者114.114.114.114),并刷新本地的DNS緩存,使其調(diào)度到其他正常的節(jié)點(diǎn)。
場(chǎng)景二:從CDN節(jié)點(diǎn)中獲取的仍是更改之前的文件
- 檢測(cè)訪問(wèn)的IP是否為CDN的節(jié)點(diǎn)IP。
-
根據(jù)CDN的配置,綁定CDN節(jié)點(diǎn)和源站。綁定源站測(cè)試時(shí),請(qǐng)注意如下幾點(diǎn)。
-
CDN的回源Host配置中,使用curl命令測(cè)試源站的命令如下。如果綁定Host文件,那么應(yīng)該將CDN加速域名綁定Host到源站域名所解析出來(lái)的IP地址。
curl -H "Host:[$Domain_Name]" "[$Source_Station]"
注:
- [$Domain_Name]為CDN加速域名。
- [$Source_Station]為源站域名。
-
不同的回源端口得到的訪問(wèn)結(jié)果也可能不一樣,分別測(cè)試得到Response
Headers相關(guān)信息,判斷訪問(wèn)的文件是否一致,主要判斷以下幾個(gè)方面。
注:如果以下三點(diǎn)存在任何一項(xiàng)不一致的情況,那么可認(rèn)為源站和節(jié)點(diǎn)上文件的確不一致。如果都存在的情況下,則第三點(diǎn)最具備判斷依據(jù)。
- Content-Length大小是否一致。
- Last-Modified的修改時(shí)間是否一致。
- ETag和Content-MD5是否一致。
-
CDN的回源Host配置中,使用curl命令測(cè)試源站的命令如下。如果綁定Host文件,那么應(yīng)該將CDN加速域名綁定Host到源站域名所解析出來(lái)的IP地址。
-
如果上述步驟確認(rèn)后都無(wú)問(wèn)題,最終在節(jié)點(diǎn)上獲取的文件仍和源站文件不一致,建議刷新URL,等待約10分鐘后再進(jìn)行測(cè)試,如果多次刷新之后問(wèn)題仍未解決,請(qǐng)提交工單。
注:刷新生效時(shí)間約為5~10分鐘。
場(chǎng)景三:訪問(wèn)CDN加速域名后獲取非其站點(diǎn)文件內(nèi)容
- 檢測(cè)訪問(wèn)的IP是否為CDN的節(jié)點(diǎn)IP。
- 排查CDN節(jié)點(diǎn)本身是否緩存了非用戶站點(diǎn)上的文件。
-
排查客戶端到CDN節(jié)點(diǎn)這段鏈路,具體方法如下。
- 打開(kāi)Chrome瀏覽器的開(kāi)發(fā)者工具,切換到Network,并在地址欄輸入訪問(wèn)的URL。
-
單擊訪問(wèn)的URL,查看實(shí)際的訪問(wèn)情況。查看報(bào)錯(cuò)request URl、remote
ip、requestUrl,主要查看訪問(wèn)形式是否為http://x.x.x.x/cache/CDN?;蛘卟榭磖emote
IP是否為CDN節(jié)點(diǎn)IP,如下圖這種則是劫持。此時(shí),需要聯(lián)系其本地運(yùn)營(yíng)商投訴處理,解除劫持。
我公司為阿里云代理商,通過(guò)此頁(yè)面下單購(gòu)買(mǎi),新老阿里云會(huì)員,均可享受我公司代理商價(jià)格!