CDN節點從來源站點擷取資源時,來源站點會返迴響應狀態代碼,您可以在阿里雲CDN上配置狀態代碼緩衝時間,當用戶端再次請求相同資源時,由CDN直接響應狀態代碼,不會觸發回源,減輕來源站點壓力。當狀態代碼超過設定的緩衝時間,會重新觸發回源。
適用情境
配置狀態代碼到期時間主要適用於來源站點響應了異常狀態代碼的情況下,用於指定CDN節點上執行的緩衝處理動作。
正常情況下CDN節點成功從來源站點擷取到所請求的資源,即來源站點響應了2xx狀態代碼時,會按照配置CDN緩衝到期時間進行緩衝。如果來源站點無法迅速響應所有狀態代碼(例如非2xx狀態代碼),且不希望所有請求全部由來源站點響應,那麼可以配置狀態代碼到期時間,由CDN節點直接響應狀態代碼,減輕來源站點壓力。
典型情境
檔案A在來源站點已被刪除,但用戶端仍持續訪問,CDN節點沒有快取檔案A,所有針對檔案A的請求都將被轉寄回源,由來源站點響應4xx狀態代碼,這將會大幅增加來源站點的壓力。如果CDN節點上配置了緩衝4xx狀態代碼,那麼CDN節點針對檔案A的請求首次回源後,會緩衝4xx狀態代碼,在預設緩衝時間內,當用戶端再次請求檔案A時,將會由CDN節點直接響應4xx狀態代碼,無需回源。
異常狀態代碼緩衝規則
對於204、305、404、405、414、424、429、500、501、502、503和504狀態代碼,緩衝規則如下:
如果來源站點返回
set-cookie回應標頭,CDN不緩衝。如果來源站點沒有返回Set-Cookie回應標頭,則遵循CDN控制台配置的狀態代碼到期時間來緩衝,配置多條規則時生效方式請參考多條規則生效優先順序說明。
如果來源站點沒有返回Set-Cookie回應標頭,CDN控制台也沒有配置狀態代碼到期時間,則按照來源站點設定的Pragma、Cache-Control或者Expires回應標頭來緩衝。
如果來源站點沒有返回Set-Cookie、Pragma、Cache-Control或者Expires回應標頭,CDN控制台也沒有配置狀態代碼到期時間,則預設緩衝1秒。
對於302、307和403狀態代碼,緩衝規則如下:
如果來源站點返回
set-cookie回應標頭,CDN不緩衝。如果來源站點沒有返回Set-Cookie回應標頭,則遵循CDN控制台配置的狀態代碼到期時間來緩衝,配置多條規則時生效方式請參考多條規則生效優先順序說明。
如果來源站點沒有返回Set-Cookie回應標頭,CDN控制台也沒有配置狀態代碼到期時間,則按照來源站點設定的Pragma、Cache-Control或者Expires回應標頭來緩衝。
如果來源站點沒有返回Set-Cookie、Pragma、Cache-Control或者Expires回應標頭,CDN控制台也沒有配置狀態代碼到期時間,不緩衝。
針對304狀態代碼,CDN將不進行緩衝,且無法通過任何方式設定緩衝時間。
對於其他異常狀態代碼,如400狀態代碼,緩衝規則如下:
如果來源站點返回
set-cookie回應標頭,CDN不緩衝。如果來源站點沒有返回Set-Cookie回應標頭,則遵循CDN控制台配置的狀態代碼到期時間來緩衝,配置多條規則時生效方式請參考多條規則生效優先順序說明。
其他情境不緩衝。
對於採用range方式回源的請求,CDN節點如果收到來源站點響應的非206狀態代碼,則CDN節點會刪除已緩衝的分區檔案(回源逾時不會刪除快取檔案)。
Range回源情況下,來源站點會把一個大檔案分割成多個小的檔案分區來返回給CDN節點。比如有個檔案被分割成了10個分區,CDN節點已經緩衝了5個分區,在請求第6個分區時,來源站點響應了5xx狀態代碼,這時會把前面已經緩衝的5個分區全部刪除。
多條規則生效優先順序說明
支援設定多條狀態代碼緩衝規則,當某個請求同時匹配了多條規則時,只會有一條規則生效,生效規則如下:
操作步驟
登入CDN控制台。
在左側導覽列,單擊域名管理。
在域名管理頁面,找到目標網域名稱,單擊操作列的管理。
在指定網域名稱的左側導覽列,單擊缓存配置。
單擊状态码过期时间頁簽。
單擊添加,配置狀態代碼到期時間。

類型
注意事項
类型
支援目录和文件后缀名這兩種類型,請根據您的實際需求選擇。
說明不同類型規則的生效優先順序:檔案尾碼名>目錄,具體請參見異常狀態代碼緩衝規則。
地址
類型選擇為目录,填寫說明如下:
每次只能添加一條目錄。
支援輸入目錄的完整路徑,須以正斜線(/)開頭,例如/directory/aaa。
類型選擇為文件后缀名,填寫說明如下:
支援輸入一個或多個檔案尾碼名,多個檔案尾碼名用半形逗號(,)分隔,例如
jpg,txt。說明不同記錄中配置的檔案尾碼名類型完全相同,僅有大小寫區分時,後面建立的會覆蓋掉前面建立的,例如建立jpg,txt規則後,再建立jpg,txt規則時,會覆蓋掉之前建立的jpg,txt記錄。此時,如果需要配置小寫規則,可以單獨建立txt和jpg的規則。配置規則實際生效的時候是嚴格區分大小寫。
不支援用星號(*)匹配所有的檔案類型。
状态码过期时间设置
需要緩衝的狀態代碼及其緩衝時間,最長可設定3年,單位:秒,配置規則如下:
多個狀態代碼用半形逗號(,)分隔。
對於2xx、3xx狀態代碼,僅支援單個精準配置,不支援模糊大量設定。例如,201=10(支援),2xx=12(不支援)。
對於4xx、5xx狀態代碼,既支援單個精準配置,也支援模糊大量設定。例如,401=10(支援),4xx=12(也支援)。
優先遵循來源站點緩衝策略
開啟後,如果來源站點響應了緩衝策略標題(包括 Cache-Control 和 Pragma ),那麼來源站點響應的緩衝策略將會優先生效。
忽略來源站點不緩衝標題
開啟後,CDN節點將會忽略來源站點響應的以下幾個緩衝策略標題(這幾個標題均表示不緩衝)。
Cache-Control: no-store
Cache-Control: no-cache
Cache-Control: max-age=0
Pragma: no-cache
用戶端跟隨CDN緩衝策略
開啟後,CDN節點會將最終生效的緩衝策略響應給用戶端。
強制內容重新驗證
該參數只在緩衝到期時間為0時生效,使用效果如下:
關閉(預設):CDN的緩衝到期時間配置為0時,CDN節點上不快取檔案,每次請求都需要回源擷取內容。
開啟:CDN的緩衝到期時間配置為0時,支援在CDN節點上快取檔案,每次請求都需要回源驗證緩衝內容。
單擊確定,完成配置。
成功配置狀態代碼到期時間後,您可以在状态码过期时间列表中,對當前的配置進行修改或删除操作。
配置樣本
樣本一:目錄類型規則
建立目錄類型規則如下圖所示:

在/directory/aaa目錄下,所有4xx狀態代碼緩衝時間為10秒,201狀態代碼緩衝時間為15秒,在該時間區間內,由CDN節點直接響應對應的訪問請求;超過該時間後,會觸發回源。
樣本二:檔案尾碼名類型規則
建立檔案尾碼名類型規則如下圖所示:

檔案尾碼為.jpg或.txt類型,403狀態代碼緩衝時間為10秒,404狀態代碼緩衝時間為15秒,在該時間區間內,由CDN節點直接響應對應的訪問請求;超過該時間後,會觸發回源。
樣本三:不同類型規則的生效優先順序
分別建立了一條“目錄類型規則”和一條“檔案尾碼名類型規則”,設定了不同的狀態代碼到期時間,如下圖所示:

使用者請求
http://example.com/directory/aaa/test.jpg,CDN節點上沒有緩衝資源,CDN節點向來源站點請求資源,來源站點響應了404狀態代碼,這裡同時匹配上了“目錄類型規則”和“檔案尾碼名類型規則”,因為在規則類型不同的情況下,規則生效優先順序是檔案尾碼名>目錄,所以“檔案尾碼名類型規則”生效,404狀態代碼的實際緩衝時間是20秒。樣本四:相同類型多條規則的生效優先順序
先建立了一條“目錄類型規則一”,匹配的地址是“/directory”,然後再建立另一條“目錄類型規則二”,匹配的地址是“/directory/aaa”,設定了不同的狀態代碼到期時間,如下圖所示:

使用者請求
http://example.com/directory/aaa/test.jpg,CDN節點上沒有緩衝資源,CDN節點向來源站點請求資源,來源站點響應了404狀態代碼,這裡同時匹配上了兩條“目錄類型規則”,因為在規則類型相同的情況下,規則生效優先順序是早建立的>晚建立的,所以最早建立的“目錄類型規則一”生效,404狀態代碼的實際緩衝時間是15秒。