在我們接入 CDN加速 服務(wù)后,可能會(huì)出現(xiàn)用戶(hù)訪問(wèn)網(wǎng)站或者APP時(shí),顯示的內(nèi)容不正確、下載的文件不正確、播放的視頻不正確的情況,本文將通過(guò)排查思路和排查步驟來(lái)定位問(wèn)題。
排查思路
是否緩存規(guī)則設(shè)置有誤
是否本地緩存的問(wèn)題
資源更新后節(jié)點(diǎn)未刷新
是否多個(gè)源站文件不一致
是否訪問(wèn)資源被劫持
排查步驟
①檢查域名緩存規(guī)則配置
可能是緩存規(guī)則配置不正確,基本的緩存過(guò)期時(shí)間設(shè)置建議如下:
對(duì)于動(dòng)態(tài)文件(如php、jsp、asp等),請(qǐng)?jiān)O(shè)置成0秒,即不緩存,每次請(qǐng)求都回源獲取。
對(duì)于不經(jīng)常更新的靜態(tài)文件(如.jpg、.zip等),建議將緩存過(guò)期時(shí)間設(shè)置成1個(gè)月以上。
對(duì)于頻繁更新的靜態(tài)文件(如js、css等),請(qǐng)根據(jù)實(shí)際業(yè)務(wù)情況設(shè)定。
可能是緩存優(yōu)先級(jí)設(shè)置不正確,導(dǎo)致緩存設(shè)置未生效。優(yōu)先級(jí)取值范圍為1-100,數(shù)值越大優(yōu)先級(jí)越高。
示例:您需要設(shè)置一條.jpg文件,緩存過(guò)期時(shí)間為2天的規(guī)則,設(shè)置如下:

圖中兩條緩存規(guī)則:所有文件緩存過(guò)期時(shí)間為30天,優(yōu)先級(jí)為8,.jpg文件緩存過(guò)期時(shí)間2天,優(yōu)先級(jí)為2。當(dāng)用戶(hù)請(qǐng)求訪問(wèn)某.jpg文件時(shí),由于所有文件這條優(yōu)先級(jí)較高,會(huì)自動(dòng)匹配,文件在CDN節(jié)點(diǎn)的緩存時(shí)間為30天而不是您期望的緩存2天。
更多緩存設(shè)置請(qǐng)參考如何設(shè)置緩存過(guò)期時(shí)間。
②確認(rèn)是否是本地緩存問(wèn)題
請(qǐng)清除瀏覽器緩存后再測(cè)試,確認(rèn)是否是瀏覽器緩存的問(wèn)題。
③源站更新資源而CDN節(jié)點(diǎn)未刷新
如果您的源站內(nèi)容更新,沒(méi)有在CDN執(zhí)行刷新操作,CDN節(jié)點(diǎn)緩存的舊內(nèi)容還未過(guò)期,此時(shí)用戶(hù)請(qǐng)求依然會(huì)返回舊資源。您可以通過(guò)以下兩種方式進(jìn)行手動(dòng)刷新。
登錄華為云控制臺(tái),在服務(wù)列表中選擇“CDN”,左側(cè)菜單欄選擇“預(yù)熱刷新”,在緩存刷新頁(yè)簽完成刷新操作。
通過(guò)CDN服務(wù)所提供的緩存刷新、緩存預(yù)熱API接口,主動(dòng)調(diào)用CDN API接口來(lái)更新CDN緩存,詳見(jiàn)API參考。
說(shuō)明:如果只更新某個(gè)文件,建議使用URL刷新對(duì)更新的文件進(jìn)行刷新。目錄刷新會(huì)針對(duì)目錄下所有文件進(jìn)行刷新,生效時(shí)間比較慢。
④排查是否是多個(gè)源站文件不一致導(dǎo)致
源站使用了 負(fù)載均衡 設(shè)備,后端存在多個(gè)服務(wù)器且它們存放的文件不一致。
CDN添加了備源站,主源站和備源站的文件不一致。
如果是以上兩種情況導(dǎo)致,請(qǐng)您將源站側(cè)資源統(tǒng)一,以免用戶(hù)獲得錯(cuò)誤文件。
⑤檢查資源訪問(wèn)是否被劫持
請(qǐng)排查您的資源訪問(wèn)是否被劫持,如果資源被劫持,請(qǐng)您通過(guò)配置HTTPS等方式提高您的安全防護(hù)等級(jí)。常見(jiàn)的判斷劫持的方法如下:
訪問(wèn)網(wǎng)站后響應(yīng)302,但是location地址不是源站期望跳轉(zhuǎn)的地址??梢酝ㄟ^(guò)在客戶(hù)端瀏覽器Chrome上輸入需要訪問(wèn)的URL,按F12,選擇“Network”>“headers”>“Response Headers”>“l(fā)ocation”查看。
訪問(wèn)網(wǎng)站后,頁(yè)面顯示的內(nèi)容不是您的業(yè)務(wù)內(nèi)容。
如果排除以上幾點(diǎn)后問(wèn)題仍然存在,請(qǐng)聯(lián)系客服或提交工單處理。