2026-10-26 · 技術
上了CDN卻沒快多少?多半是快取命中率低。本文從快取規則、URL統一、響應頭、預熱重新整理、節點回源五個方向,給出排查和最佳化命中率的具體做法。
不少網站開通CDN之後感覺沒快多少,一查監控才發現快取命中率只有百分之幾十,甚至個位數。命中率上不去,意味著大部分請求仍然穿透到源站,CDN基本只剩下中轉作用,錢花了效果沒出來。可以從五個方向排查和最佳化。 第一,檢查快取規則。先確認圖片、CSS、JS、影片這類靜態資源有沒有被正確快取。很多問題出在源站響應頭上:如果源站返回了禁止快取的頭部指令,或者max-age設得極短,節點會照單全收、不做快取。正確做法是在CDN控制台給靜態資源目錄配置明確的快取策略,動態介面則保持不快取,兩者分開配置。 第二,統一資源URL。同一個檔案因為帶了不同查詢引數,比如不同版本號或隨機時間戳,會被CDN當成不同資源分別快取,命中率被嚴重稀釋。前端引用資源時儘量統一版本號,同時確認CDN對URL引數的處理策略:內容不隨引數變化的場景,開啟忽略引數快取能明顯提升命中。 第三,檢查響應頭細節。帶Cookie的響應通常不會被快取,如果全站請求都攜帶Cookie,靜態資源也會被牽連。常見解法是把靜態資源放到獨立域名下,與需要Cookie的業務域名分開,這一招對提升命中率很有效。 第四,預熱與重新整理配合使用。新內容上線時,先用預熱功能把資源提前推送到各節點,避免第一波使用者集中回源打源站;內容更新後,再對舊資源做快取重新整理。大促、版本釋出之前做一輪預熱,是最能立竿見影的操作。 第五,看節點覆蓋與回源鏈路。在監控報表裡看命中分佈,確認使用者集中的地區有沒有對應節點覆蓋;同時最佳化回源配置,讓節點就近回源,縮短回源鏈路,即使少量請求穿透也不會拖垮體驗。 命中率沒有統一的標準答案:內容以靜態為主的站點做到九成以上不難,動態請求多的站點重點則放在動靜分離上,把能快取的儘量剝離出來。加速IDC的CDN加速服務支援快取規則配置、預熱重新整理和命中率報表,有需要可以幫您把現有加速配置完整梳理一遍。