緩衝到期時間指來源站點資源在CDN節點緩衝的時間長度,達到預設時間,資源將會被CDN節點標記為失效資源。如果用戶端向CDN節點請求的資源已經失效,CDN會回來源站點擷取最新資源並緩衝到CDN節點。您可以根據業務需求,按目錄或檔案尾碼名配置靜態資源的緩衝到期時間。
注意事項
您成功添加網域名稱後,可以修改緩衝時間。設定的緩衝時間長短會導致回源流量不一樣,費用也有所不同,建議根據不同的業務需求設定緩衝時間長度。緩衝到期時間會影響回源頻率,建議根據實際業務需求設定資源緩衝時間長度。
緩衝到期時間過短,會導致CDN頻繁回源,增加來源站點的流量消耗;緩衝到期時間過長,會帶來資料更新時間慢的問題。
緩衝在CDN節點上的資源,如果該資源的訪問熱度較低(同一個CDN節點上的同一個資源被用戶端訪問的頻次較低),那麼很可能會在緩衝到期之前被CDN節點上其他訪問熱度較高的資源覆蓋。
CDN節點在收到來源站點響應的靜態檔案資源的時候,預設會按照阿里雲CDNDCDN預設緩衝規則及優先順序來執行。
建議您來源站點的內容不使用同名更新,而是採用版本號碼的方式同步。
為了能準確找到更新前和更新後的來源站點內容,建議您來源站點的內容以版本號碼的方式同步,即更新來源站點內容時採用不同的名稱。例如,採用img-v1.0.jpg、img-v2.1.jpg的方式命名。
操作步驟
登入CDN控制台。
在左側導覽列,單擊域名管理。
在域名管理頁面,找到目標網域名稱,單擊操作列的管理。
在指定網域名稱的左側導覽列,單擊缓存配置。
在缓存过期时间頁簽下,單擊添加。
在添加缓存过期时间對話方塊,配置緩衝規則。
參數
說明
參數
說明
类型
支援按目录或文件后缀名指定資源範圍。
目录:為某一路徑下所有資源設定相同緩衝規則。
文件后缀名:為某一檔案類型資源的設定相同緩衝規則。
地址
指定待配置資源的目錄或檔案尾碼名。
類型選擇目錄時,填寫規則如下:
每次只能添加單條目錄,可以用正斜線(/)匹配所有目錄。
支援輸入目錄的完整路徑,須以正斜線(/)開頭,例如/directory/aaa。
類型選擇檔案尾碼名時,填寫規則如下:
支援輸入一個或多個檔案尾碼名,多個檔案尾碼名用半形逗號(,)分隔,例如
jpg,txt
。大小寫敏感,注意區分大小寫。
不支援用星號(*)匹配所有的檔案類型。
过期时间
資源在CDN節點的緩衝時間,最長可以設定3年。建議參考如下規則配置:
不常更新的靜態檔案(例如,圖片類型、應用下載類型等),建議設定1個月以上。
頻繁更新的靜態檔案(例如,JS、CSS等),根據實際業務情況設定。
動態檔案(例如,PHP、JSP、ASP等),建議設定為0s,即不緩衝。
权重
權重即緩衝規則的優先順序。取值為1~99,數值越大優先順序越高,對應規則優先生效。
有多條緩衝規則的情況下,建議每條緩衝規則都設定不同的權重,通過權重來控制規則執行優先順序。
權重相同的規則生效優先順序:先建立的>後建立的,與規則類型無關。
如果配置了多條緩衝策略,其中一條緩衝策略生效後將不再繼續匹配其他的緩衝策略。
規則條件
規則條件能夠對使用者請求中攜帶的各種參數資訊進行識別,以此來決定某個配置是否對該請求生效。
不使用:不使用規則條件。
選擇已配置的規則引擎,新增或修改規則引擎請參見規則引擎。
單擊確定,完成配置。
您可以在缓存过期时间列表中,根據所需修改或删除配置。
阿里雲CDN預設緩衝規則及優先順序
CDN節點在收到來源站點響應的檔案資源的時候,會按照以下的緩衝規則來執行(數值越小,優先順序越高):
來源站點響應
pragma:no-cache
、cache-control:no-cache
(或者no-store
,或者max-age=0
)時,CDN遵循來源站點的策略,完全不緩衝資源。CDN控制台設定的緩衝到期時間或者狀態代碼到期時間。
若CDN請求同時命中多條規則,有且僅有一條規則會生效,優先順序為:權重>規則建立時間。
有多條緩衝規則的情況下,建議每條緩衝規則都設定不同的權重(權重越大優先順序越高),通過權重來控制規則執行優先順序。
權重相同的規則生效優先順序:先建立的>後建立的,與規則類型無關。
來源站點配置其他緩衝規則,優先順序由高至低為:
cache-control
>expires
>last-modified
>ETag
。來源站點響應中使用
cache-control
設定到期時間,取值為max-age
或s-maxage
,並且max-age
或s-maxage
的值大於0,例如:cache-control:max-age=3600。如果同時存在max-age
和s-maxage
,則以s-maxage
的值為準。來源站點響應中使用
expires
設定到期時間,例如:expires:Tue, 25 Nov 2031 17:25:43 GMT。來源站點響應中攜帶了
ETag
或last-modified
,則使用以下規則來計算緩衝時間:有
last-modified
,使用公式(目前時間-last-modified
)* 0.1,計算結果在10秒~3600秒及之間的,取計算結果時間;小於10秒的,按照10秒處理;大於3600秒的,按照3600秒處理。只有
ETag
,緩衝10秒。
來源站點返回的資料中
ETag
、last-modified
、cache-control
和expires
這些緩衝相關的回應標頭都沒有攜帶,則預設不緩衝。
HTTP協議緩衝控制機制說明
在HTTP協議中定義了三種不同類型的協議頭部來實現緩衝控制相關的機制:
配置樣本
樣本一:需要對“.txt”格式的檔案快取7天,在CDN控制台增加一條檔案名稱尾碼為“txt”的緩衝規則,緩衝到期時間設定為“7天”。
樣本二:為加速網域名稱demo.aliyun.com
配置以下緩衝策略,CDN節點回源下載資源http://demo.aliyun.com/image/example.png
,雖然以下兩條規則都匹配到了,但是因為這兩條規則的權重相同,因此要判斷規則建立的時間,先建立的規則優先順序高於後建立的,因為目錄/image這條規則建立的時間更早,所以系統最終生效的是目錄類型這條規則。