本文按癥狀匯總 CDN 回源情境的典型問題與排障方法,覆蓋回源失敗與 5xx 報錯、重新導向迴圈、4xx 報錯、OSS 回源報錯、回源內容與行為異常等情境。
癥狀速查表
先根據用戶端觀測到的現象定位排查入口,再按對應章節的步驟逐項排查。
現象或狀態代碼 | 常見原因 | 排查入口 |
502 Bad Gateway | 回源協議或連接埠與來源站點監聽不一致、回源 SNI 缺失、來源站點認證無效 | |
回源協議為“跟隨”時返回 502 | 用戶端以 HTTPS 訪問,CDN 隨之以 HTTPS 回源,但來源站點不支援 HTTPS | |
504 Gateway Timeout | 來源站點響應慢、防火牆靜默丟包、回源 HTTP 要求逾時時間過短 | |
503 Service Temporarily Unavailable | 來源站點服務異常或負載過高、來源站點限流、安全軟體攔截回源 IP | |
ERR_TOO_MANY_REDIRECTS | 來源站點配置了 HTTP 到 HTTPS 強制跳轉,而 CDN 以 HTTP 協議回源 | |
配置回源 HOST/SNI 之後才出現重新導向迴圈 | 來源站點匹配到目標網站後,該網站的強制跳轉規則隨之生效 | |
配置回源 HOST 後返回 404、403、500 或 502 | 回源 HOST 與來源站點虛擬機器主機(server_name、ServerName、IIS 主機名稱)不匹配 | |
403 Forbidden | CDN 側存取控制規則命中,或來源站點防盜鏈、IP 限制、WAF 攔截回源請求 | |
經 CDN 訪問返回 404,直連來源站點正常 | 回源 HOST 錯誤、節點緩衝了舊的 404、請求路徑大小寫或編碼差異 | |
報錯 bucket acl | 來源站點 OSS Bucket 為私人模式,且未開啟 OSS 私人 Bucket 回源 | |
報錯 forbidden by kms | OSS 對象使用 KMS 加密,CDN 回源角色缺少 KMS 解密許可權 | |
報錯 forbidden to list buckets | CDN 私人 Bucket 回源與 OSS 靜態網站託管的預設首頁配置衝突,根目錄訪問被拒絕 | |
終端適配失效(不同終端返回相同頁面) | 首個終端的 302 跳轉響應被緩衝,其他終端訪問同一 URL 時命中該緩衝 | |
頁面跳轉失敗或部分資源無法訪問 | 忽略 URL 參數導致不同參數的請求共用同一份緩衝,或回源 HOST 不匹配 | |
大檔案下載中斷、斷點續傳或視頻拖拽失敗 | 來源站點不支援 Range 請求,或 Range 回源時來源站點響應了非 206 狀態代碼 |
如何判斷問題是否出在回源環節
回源問題通常表現為訪問加速網域名稱返回 5xx/4xx,或響應內容與預期不符。可按以下步驟先確認責任方,再進入對應章節排查。
確認請求是否經過 CDN:執行
curl -I http(s)://加速網域名稱/資源路徑查看回應標頭。若回應標頭中包含X-Cache、Via等 CDN 特徵欄位,說明請求已到達 CDN 節點;若沒有這些欄位,請執行dig 加速網域名稱確認解析結果是否為 CDN 分配的 CNAME。解析不正確時請先修正 DNS 解析,確保加速網域名稱只解析到 CDN 提供的 CNAME 記錄;解析正確但仍無 CDN 特徵回應標頭時,需排查 DNS 劫持或本地 hosts 綁定。說明回應標頭中出現
Server: AliyunOSS不能直接判定請求直連了 OSS。當 OSS 作為 CDN 來源站點時,CDN 回源後也可能透傳該回應標頭,請以 DNS 解析結果和 CDN 特徵回應標頭為準。判斷異常來自緩衝還是回源:確認請求經過 CDN 後,根據
X-Cache判斷。為
HIT時請求命中 CDN 緩衝,異常響應可能來自舊緩衝,建議先執行 URL 重新整理再重新訪問複現。為
MISS時 CDN 已回源,若仍異常,則問題大機率出在回源鏈路或來源站點響應。對比直連來源站點與經 CDN 訪問的結果:綁定本地 hosts 或直接存取來源站點 IP/網域名稱。若直連來源站點正常、經 CDN 訪問異常,重點排查回源配置(回源協議、連接埠、回源 HOST、回源 SNI)以及來源站點對 CDN 回源 IP 的處理策略;若直連來源站點同樣異常,請優先修複來源站點問題,CDN 側無需調整。
對比 CDN 訪問日誌與來源站點訪問日誌:若來源站點日誌中沒有收到對應請求,說明回源請求在到達來源站點前就已失敗,需排查 DNS 解析、網路連通性、TLS 握手、安全性群組或防火牆等環節;若來源站點收到請求但返回錯誤,請對比兩側日誌的請求路徑、Host、User-Agent、Referer 等欄位,逐欄位定位差異點。
回源失敗與返回 5xx 問題
重新導向異常類
回源4xx報錯類
區分不同狀態代碼的排查重點:
404:請求到達了來源站點,但來源站點在該虛擬機器主機下找不到對應資源。重點排查回源請求路徑是否正確、CDN 是否緩衝了舊的 404 響應。
403:來源站點拒絕了請求。重點排查 Referer 防盜鏈、IP 白名單、WAF 規則、Host 頭與來源站點安全性原則是否匹配。
OSS 回源報錯類
內容與行為異常類
通用操作說明
以上多個情境都會用到“重新整理緩衝”和“維護回源 IP 白名單”兩項操作,此處統一說明。
何時需要重新整理緩衝:
修改回源配置(回源協議、回源連接埠、回源 HOST、回源 SNI、緩衝規則等)後,新配置僅對後續的回源請求生效,節點上已緩衝的異常響應(如 403、404、301/302 重新導向)不會自動失效。因此修改配置後建議執行一次重新整理,否則可能誤判為“配置未生效”。配置修改後需下發到全網節點,通常幾分鐘內完成。
重新整理方式選擇:
URL 重新整理:適用於已明確異常資源具體地址的情境,精確清除單個資源的緩衝。
目錄重新整理:適用於整個目錄下的資源都可能受影響的情境,例如修改回源 HOST 後整站返回過 404。
正則重新整理:適用於需要按路徑特徵或尾碼批量重新整理的情境。
如需重新整理全站生效,可對網域名稱根目錄執行目錄重新整理,或調用 RefreshObjectCaches 介面並將 Force 參數設為 true。各類重新整理的具體操作、生效時間和每日配額限制請參見重新整理和預熱資源。
維護回源 IP 白名單:
502、503、504 以及來源站點側 403 的多個情境,根因都是來源站點攔截或限流了 CDN 回源 IP。回源 IP 段會隨節點調度變化並定期更新,白名單到期後會再次出現回源失敗。
建議定期擷取最新列表並同步到來源站點安全性群組、防火牆、WAF 和限流規則中:需要擷取指定網域名稱的 L2 節點回源 IP 列表時,可使用DescribeL2VipsByDomain介面。如果來源站點通過安全性群組或防火牆規則控制來源 IP,建議將上述介面接入定時任務,周期性拉取最新回源 IP 段並自動更新白名單。