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