通過配置緩衝到期時間規則,可以精細化控制CDN節點的資源緩衝時間長度,以平衡內容更新、訪問效能與回源成本。此文檔介紹緩衝規則的工作原理、配置方法、驗證、排障流程及最佳實務。
工作原理
請求到達CDN節點時,系統遵循以下決策流程(序號越小,優先順序越高)決定是響應快取複本,還是回源擷取最新內容。
不緩衝資源:來源站點響應
pragma:no-cache、cache-control:no-cache(或者no-store,或者max-age=0)時,CDN遵循來源站點的策略,完全不緩衝資源。遵循控制台緩衝規則:CDN控制台為指定目錄或檔案尾碼名設定規則,且來源站點未配置上述不緩衝規則,此時控制台緩衝規則為最高優先順序策略。
多條控制台緩衝規則匹配時的優先順序邏輯:
情境
優先順序邏輯
樣本
權重不同
權重值(1-99)大的規則優先生效。
規則A(目錄
/image/,權重50)和規則B(尾碼.jpg,權重90)都匹配image/a.jpg,則規則B生效。權重相同
先建立的規則優先生效。
為網域名稱配置權重同為60的目錄規則(
/static/)和尾碼規則(.js),若目錄規則建立時間早於尾碼規則,則/static/app.js命中目錄規則。請求命中某條緩衝規則後,不再繼續匹配其他規則。
預設情況下,若來源站點響應
Pragma: no-cache或Cache-Control: no-cache/no-store/max-age=0,CDN節點不緩衝該資源。如果需要強制緩衝資源,可以在控制台配置緩衝到期時間時勾選忽略來源站點不緩衝標題。
CDN遵循來源站點緩衝策略:若請求未命中任何CDN控制台規則,或命中的規則開啟了優選遵循來源站點緩衝策略,此時CDN將遵循來源站點的HTTP響應標題。回應標頭的優先順序由高至低為:
cache-control>expires>last-modified>ETag。回應標頭
CDN 如何處理
注意事項與樣本
Cache-Control
優先用
s-maxage(CDN 緩衝時間長度),其次max-age。樣本:
s-maxage=86400, max-age=3600Expires
到期時間,僅當無
Cache-Control時生效。樣本:
Expires: Wed, 21 Oct 2025 07:28:00 GMTLast-Modified
Last-Modified是一個時間戳記,表示資源最後被修改的時間。緩衝時間計算規則如下:
(目前時間-
last-modified)* 0.1,計算結果在10秒~3600秒及之間的,取計算結果時間;小於10秒的,按照10秒處理;大於3600秒的,按照3600秒處理。樣本:
Last-Modified: Wed, 21 Oct 2023 07:28:00 GMTETag
ETag是伺服器為每個資源產生的一個唯一識別碼,通常是一個雜湊值或版本號碼。ETag預設緩衝10秒。樣本:
ETag: "abc123"CDN不緩衝策略:若沒有命中CDN控制台的緩衝規則,並且來源站點也沒有返回
Cache-Control等緩衝回應標頭,則CDN執行不緩衝策略。
CDN僅對來源站點響應200, 203, 206, 300, 301, 308, 410狀態代碼的請求執行緩衝策略。如需緩衝其他狀態代碼的請求(例如404),需在 版面設定。
操作步驟
控制台(推薦)
CDN控制台的網域名稱管理頁,單擊目標網域名稱右側的管理。
在頁面單擊添加,配置緩衝規則。
添加緩衝到期時間
參數
說明

类型
支援按目录或文件后缀名指定資源範圍。
• 目錄:為路徑下所有資源統一設定緩衝規則。
• 檔案尾碼名:為指定類型的檔案統一設定緩衝規則。地址
根據所選類型填寫:
• 目錄:以/開頭(如/static/),支援/匹配所有路徑,每次僅支援添加一條。
• 檔案尾碼名:輸入一個或多個尾碼,用英文逗號分隔(如jpg,css),區分大小寫,不支援*。过期时间
資源在CDN節點的緩衝時間長度,最長3年。
• 不常更新的靜態資源(如圖片、安裝包):建議 ≥1個月。
• 頻繁更新的靜態資源(如 JS/CSS):按需設定。
• 動態內容(如 PHP/JSP):建議設為 0秒(不緩衝)。優選遵循來源站點緩衝策略
開啟後,優先採用來源站點緩衝策略,覆蓋本規則配置。
忽略來源站點不緩衝標題
開啟後,CDN 將忽略來源站點返回的以下不緩衝指令:
Cache-Control: no-store、no-cache、max-age=0,以及Pragma: no-cache,仍按CDN控制台規則緩衝。用戶端跟隨CDN緩衝策略
開啟後,CDN 會將自身生效的緩衝策略(如
max-age=3600)通過回應標頭返回給用戶端。強制內容重新驗證
僅在到期時間設為0秒時生效:
關閉(預設):CDN的緩衝到期時間配置為0時,CDN節點上不快取檔案,每次請求都需要回源擷取內容。
開啟:CDN的緩衝到期時間配置為0時,支援在CDN節點上快取檔案,每次請求都需要回源驗證緩衝內容。
权重
規則優先順序,取值 1~99,數值越大優先順序越高。
• 權重相同時,先建立的規則優先生效。
• 任一規則命中後,不再匹配後續規則。規則條件
可基於請求中的參數(如 Header、URL 參數等)進一步限定規則生效範圍。
• 預設不使用;如需配置,請在規則引擎中管理。
API
調用BatchSetCdnDomainConfig介面,大量設定網域名稱。
使規則變更立即生效
配置變更或新增規則,僅對新緩衝的資源生效。變更前已緩衝的資源,將繼續沿用舊的緩衝策略直至到期。
要使新規則立即對全網生效,必須手動清理已有緩衝。如果是規則變更,通過重新整理資源功能執行重新整理操作;如果是新增規則,通過預熱資源功能執行預熱操作。
生效驗證
配置完成後,可通過curl命令或瀏覽器開發人員工具查看資源的HTTP響應標題,以判斷緩衝是否按預期工作。
1. 執行驗證命令
在終端上執行以下命令進行測試。
curl -I "https://your.domain.com/path/to/file.jpg"2. 解讀關鍵回應標頭
響應標題 | 常見值與解讀 |
| 指示請求是否命中CDN緩衝。 |
| 開啟“用戶端跟隨CDN緩衝策略”後,此標題會顯示CDN傳遞給瀏覽器的緩衝指令,如 |
| 資源在CDN節點上配置的緩衝總時間長度,單位為秒。 |
應用於生產環境
版本化檔案名稱(推薦):更新靜態資源(如
style.css)時,使用帶版本或雜湊值的新檔案名稱(如style-v2.css或style-a1b2c3d.css),並更新HTML中的引用。此方式無需手動重新整理CDN緩衝,可確保使用者立即擷取最新內容,是推薦的緩衝更新方式。動靜分離:為動態和靜態資源使用不同網域名稱或目錄路徑,並配置獨立的、高權重的緩衝規則,以避免策略混淆。例如,為
/static/目錄下的所有資源設定長緩衝,為/api/目錄下的資源設定不緩衝。善用瀏覽器緩衝:開啟“用戶端跟隨CDN緩衝策略”,可減少對CDN的重複請求,提升載入速度並節省CDN流量。
避免緩衝時間過短:過短的緩衝時間會導致CDN頻繁回源,無法起到加速效果,反而增加來源站點的流量消耗和成本。
注意緩衝時間過長:過長的緩衝時間會導致用戶端擷取資料更新不及時。對於需頻繁更新的內容,務必配合重新整理快取作業或使用版本化檔案名稱。
HTTP協議緩衝控制機制說明
在HTTP協議中定義了三種不同類型的協議頭部來實現緩衝控制相關的機制: