問題背景
已經配置了CDN,但不清楚配置是否生效。
分析步驟
判斷CDN配置的網域名稱是否起到加速的效果,需要按照如下幾個步驟進行分析:
前置條件檢查
在排查 CDN 是否生效之前,請先確認以下前提條件:
來源站點服務正常:如果網域名稱解析正常但訪問返回 404 等錯誤,需優先確認來源站點服務是否可用,而非僅排查 CDN 配置。可以繞過 CDN,直接通過來源站點 IP 或來源站點網域名稱訪問資源來驗證來源站點可用性。
DNS 解析記錄類型正確:CDN 加速網域名稱必須配置 CNAME 類型的解析記錄。如果通過 IP 可以正常訪問但通過網域名稱無法訪問且 Ping 不通,請檢查 DNS 中是否錯誤配置了 A 記錄而非 CNAME 記錄,或 CNAME 指向的地址是否正確。可以通過
nslookup -type=CNAME <加速網域名稱>或dig +short <加速網域名稱> CNAME命令驗證當前的解析記錄類型。CDN 緩衝規則配置正確:確保CDN 控制台中加速網域名稱的緩衝規則(如緩衝到期時間、目錄或檔案尾碼的緩衝策略)已正確配置,避免因緩衝規則不當導致資源無法被 CDN 節點緩衝。
確認CNAME是否配置成功
控制台中CNAME狀態為已配置,且網域名稱狀態為正常運行。
使用nslookup -type=CNAME 加速網域名稱 或
dig +short <加速網域名稱> CNAME命令,如果返回的解析結果和CDN控制台上該加速網域名稱的CNAME值一致,則表示配置的CNAME已經生效。
如果未解析到 CDN CNAME,說明 CNAME 配置未生效,請參考配置CNAME常見問題排查。
驗證CDN緩衝是否生效
瀏覽器訪問(並開啟瀏覽器開發人員工具)。
當回應標頭結果中有
Age、X-Cache、X-Swift-SaveTime、X-Swift-CacheTime時,證明阿里雲CDN已經生效。說明X-Cache:欄位為MISS,則表示未命中緩衝,需要進行回源處理;X-Cache欄位為HIT,則表示命中了CDN緩衝,會直接讀取快取資料。Age: 表示檔案在CDN節點上緩衝的時間(秒)。檔案被重新整理或首次訪問無此欄位。Age為0表示緩衝到期,需回源校正。X-Swift-SaveTime:表示資源首次被緩衝到CDN節點上的時間(GMT)。X-Swift-CacheTime:欄位值表示CDN節點上的允許緩衝時間,即該檔案可以在CDN節點上緩衝多久。如果是0,則表示該請求無法緩衝。EagleId:阿里雲 CDN 節點的特徵回應標頭欄位。在瀏覽器開發人員工具的網路請求回應標頭(Response Headers)中尋找eagleid欄位,若該欄位存在,表示請求已經過阿里雲 CDN 節點處理;若缺失,可能表示請求未經過 CDN(例如直接回源或被本機快取攔截)。
如需驗證整體的加速效果,應當通過撥測的方式進行對比驗證。可通過一次性撥測工具分別綁定CDN和繫結來源站對比測試。
如果按照上述方法驗證時遇到異常結果,請檢查以下常見排查點:
瀏覽器未顯示 CDN 回應標頭:如果在瀏覽器開發人員工具中未看到
Age、X-Cache、X-Swift-SaveTime、X-Swift-CacheTime等 CDN 回應標頭,可能是瀏覽器使用了本機快取而未實際發起請求。建議先按Ctrl+Shift+R(Windows/Linux)或Cmd+Shift+R(macOS)強制重新整理頁面,或使用瀏覽器無痕模式/更換其他瀏覽器重新訪問測試。Ping 不通或訪問異常:本地 DNS 緩衝可能保留了舊的解析結果,導致請求未到達 CDN 節點。建議執行以下命令重新整理本地 DNS 緩衝後重試:
Windows:
ipconfig /flushdnsmacOS:
sudo dscacheutil -flushcacheLinux:
sudo systemd-resolve --flush-caches
如果重新整理 DNS 緩衝後仍然無法正常解析或訪問,可嘗試將本地 DNS 伺服器更換為公用 DNS(如
8.8.8.8或114.114.114.114)後重新測試,以排除本地 DNS 伺服器解析異常的影響。此操作同樣適用於以下常見情境:瀏覽器報
DNS_PROBE_FINISHED_NXDOMAIN錯誤:通常表示 DNS 無法解析該網域名稱,重新整理 DNS 緩衝或更換公用 DNS 後重試。CDN 續約或配置變更後 Ping 不通:DNS 解析緩衝可能仍指向舊地址,等待 DNS 緩衝到期或手動重新整理後即可恢複。
確認存取 URL 使用了正確的網域名稱:請確保訪問資源時使用的是 CDN 加速網域名稱(如
cdn.example.com),而非 CDN 分配的 CNAME 地址(如cdn.example.com.w.kunlunaq.com)。CNAME 地址僅用於在 DNS 服務位址配置解析記錄,不應直接用於瀏覽器訪問或資源引用。
常見問題
CDN 控制台顯示 CNAME 已配置,但網域名稱仍無法訪問或解析失敗怎麼辦?
如果 CDN 控制台的CNAME狀態顯示為已配置,但網域名稱訪問異常,請按以下步驟排查:
確認來源站點服務正常:繞過 CDN 直接通過來源站點 IP 或來源站點網域名稱訪問資源,排除來源站點服務停用可能。如果來源站點本身無法訪問,需先恢複來源站點服務。
檢查網域名稱狀態:在 CDN 控制台確認加速網域名稱的狀態為正常運行。如果網域名稱因欠費、違規等原因被停用,CDN 加速不會生效。CDN 續約後通常不需要重新設定即可恢複訪問。
清除本地 DNS 緩衝:本地 DNS 緩衝可能保留了舊的解析結果。執行以下命令清除後重試:
Windows:
ipconfig /flushdnsmacOS:
sudo dscacheutil -flushcacheLinux:
sudo systemd-resolve --flush-caches
等待 DNS 生效:如果是新添加或修改的 CNAME 記錄,DNS 全網生效可能需要 5~10 分鐘,請稍後再次驗證。
網域名稱已在 DNS 側配置了阿里雲 CDN 的 CNAME,但為何仍無法訪問?
DNS 解析指向了阿里雲 CDN 的 CNAME 地址,不代表 CDN 加速已經配置完成。CDN 服務需要同時滿足以下兩個條件才能正常工作:
在 CDN 控制台添加加速網域名稱:登入CDN 控制台,在域名管理頁面添加加速網域名稱並完成回源等配置。
在 DNS 服務位址配置 CNAME 記錄:將網域名稱的 DNS 解析指向 CDN 控制台分配的 CNAME 地址。
如果僅完成了第 2 步(DNS 解析配置),而未在 CDN 控制台添加加速網域名稱,CDN 節點無法識別該網域名稱的請求,服務不會生效。請確認網域名稱已在 CDN 控制台成功添加,且網域名稱狀態為正常運行。
配置 CDN 後網站圖片載入緩慢或資源未加速怎麼辦?
CDN 僅加速通過加速網域名稱請求的資源,不會自動替換網站代碼中的資源引用地址。如果接入 CDN 後仍感覺載入緩慢,請按以下步驟排查:
檢查資源 URL:開啟瀏覽器開發人員工具(F12),在 Network 面板查看圖片、CSS、JavaScript 等靜態資源的請求 URL。如果這些 URL 仍指向來源站點地址(如 OSS Endpoint 或來源站點 IP),說明這些資源請求未經過 CDN。
修改資源引用:確保網站前端代碼中靜態資源的 URL 已替換為 CDN 加速網域名稱。例如,將
https://oss-bucket.oss-cn-hangzhou.aliyuncs.com/image.png修改為https://cdn.example.com/image.png。驗證 CDN 生效:通過 CDN 加速網域名稱訪問某個資源,在瀏覽器開發人員工具中查看回應標頭。如果
X-Cache欄位值為HIT,表示該資源已被 CDN 緩衝和加速。
DNS 解析衝突導致 CDN 不生效怎麼辦?
如果 CNAME 已正確配置但 CDN 仍未生效,可能是 DNS 配置存在衝突。請根據以下情境排查:
同一主機記錄存在多條 CNAME 解析:同一網域名稱的主機記錄下如果存在多條 CNAME 解析記錄,會導致 DNS 解析衝突,請求可能繞過 CDN 直接到達來源站點。請登入 DNS 服務商控制台,禁用或刪除未指向阿里雲 CDN 的 CNAME 解析記錄,確保該主機記錄下僅保留一條指向阿里雲 CDN CNAME 地址的解析記錄。
泛網域名稱加速與子網域名稱記錄衝突:配置泛網域名稱加速(如
*.example.com)後,如果 DNS 中單獨為某個子網域名稱(如img.example.com)配置了 A 記錄或其他解析記錄,該子網域名稱的請求可能不經過 CDN。請刪除 DNS 中該子網域名稱的獨立解析記錄,等待 DNS 生效(通常約 10 分鐘)後重新測試。第三方 DNS 服務衝突:如果使用 Cloudflare 等第三方 DNS 服務且出現 Error 1001 錯誤,或網域名稱的 NS 記錄未指向阿里雲雲解析 DNS,請求可能被第三方 DNS 攔截或未到達阿里雲 CDN。請檢查網域名稱的 NS 記錄和權威 DNS 伺服器配置,確保 CNAME 接入方式正確,必要時將 DNS 服務切換至阿里雲雲解析 DNS,並清除本地 DNS 緩衝後重試。
HTTPS 訪問失敗但 HTTP 正常:如果通過 HTTP 協議可以正常訪問但 HTTPS 訪問失敗或提示認證錯誤,通常是 CDN 未配置 SSL 憑證。請登入CDN 控制台,在加速網域名稱的 HTTPS 配置頁面上傳或選擇 SSL 憑證,開啟 HTTPS 安全加速。
CDN 控制台狀態顯示異常或監控無流量怎麼辦?
如果 CDN 控制台中網域名稱的 CNAME 狀態頻繁切換、或監控面板顯示無流量資料,請按以下思路排查:
CNAME 狀態頻繁在"已配置"和"未配置"之間切換:可能是 DNS 配置存在衝突(請參考上方"DNS 解析衝突導致 CDN 不生效怎麼辦?"),或 DNS TTL(存留時間)尚未完全到期。修改 NS 記錄後全網生效通常需要最長 48 小時。此外,如果在回應標頭中看到大量 304 狀態代碼,這屬於正常的 HTTP 緩衝行為(表示資源未被修改,伺服器返回"未修改"響應),並非 CDN 異常。如需強制擷取最新資源,可使用
Ctrl+F5(Windows/Linux)或Cmd+Shift+R(macOS)進行強制重新整理。監控面板無流量資料:除 DNS 解析衝突外,請檢查以下事項:
建議使用次層網域(如
cdn.example.com)而非主網域名稱配置 CDN 加速,避免與其他解析記錄衝突。通過瀏覽器無痕模式訪問測試 URL,排除本地瀏覽器緩衝的幹擾。
確認測試 URL 使用的是 CDN 加速網域名稱,而非來源站點地址或 CNAME 地址。
懷疑網域名稱本身存在問題:如果網域名稱可能已到期或被註冊商停用,可通過WHOIS 查詢查詢網域名稱的註冊資訊和到期時間,確認網域名稱狀態正常。