DCDN節點從源站獲取資源時,源站會返回響應狀態碼,您可以在阿里云DCDN上配置狀態碼緩存時間,當客戶端再次請求相同資源時,由DCDN直接響應狀態碼,不會觸發回源,減輕源站壓力。當狀態碼超過設置的緩存時間,會重新觸發回源。
適用場景
配置狀態碼過期時間主要適用于源站響應了異常狀態碼的情況下,用于指定DCDN節點上執行的緩存處理動作。
正常情況下DCDN節點成功從源站獲取到所請求的資源,即源站響應了2xx狀態碼時,會按照阿里云DCDN默認緩存規則及優先級進行處理。如果源站無法迅速響應所有狀態碼(例如非2xx狀態碼),且不希望所有請求全部由源站響應,可以配置狀態碼過期時間,由DCDN節點直接響應狀態碼,減輕源站壓力。
典型場景
文件A在源站已被刪除,但客戶端仍持續訪問,DCDN節點沒有緩存文件A,所有請求轉發回源,由源站響應4xx狀態碼,加劇源站壓力。如果配置了緩存4xx狀態碼,DCDN節點首次回源后,會緩存4xx狀態碼,預設緩存時間內,當客戶端再次請求文件A時,由DCDN直接響應4xx狀態碼,無需回源。
異常狀態碼緩存規則
對于204、305、400、403、404、405、414、500、501、502、503和504狀態碼,緩存規則如下圖所示:
請求通過配置Range回源功能時,緩存規則如下:
非200、206狀態碼(包含但不限于204、305、400、403、404、405、414、500、501、502、503和504狀態碼)的情況下,均不緩存。
200、206狀態碼按照配置緩存過期時間進行緩存。
收到5xx狀態碼會刪除已緩存的分片文件(回源超時不會刪除緩存文件)。
說明Range回源情況下,源站會把一個大文件分割成多個小的文件分片來返回給DCDN節點。比如有個文件被分割成了10個分片,DCDN節點已經緩存了5個分片,在請求第6個分片時,源站響應了5xx狀態碼,這時會把前面已經緩存的5個分片全部刪除。
請求未通過配置Range回源功能時,按照如下規則緩存:
如果源站返回
set-cookie
響應頭,DCDN不緩存。如果源站沒有返回
Set-Cookie
響應頭,則遵循DCDN控制臺配置的狀態碼過期時間來緩存,配置多條規則時生效方式請參考多條規則生效說明。如果源站沒有返回
Set-Cookie
響應頭,DCDN控制臺也沒有配置狀態碼過期時間,則按照源站設置的Pragma
、Cache-Control
或者Expires
響應頭來緩存。如果源站沒有返回
Set-Cookie
、Pragma
、Cache-Control
或者Expires
響應頭,DCDN控制臺也沒有配置狀態碼過期時間,則默認緩存1秒。
對于303、304、401、407、600和601狀態碼,DCDN均不進行緩存。
多條規則生效說明
支持設置多條狀態碼緩存規則,當某個請求同時匹配了多條規則時,只會有一條規則生效,生效規則如下:
操作步驟
登錄DCDN控制臺。
在左側導航欄,單擊域名管理。
在域名管理頁面,找到目標域名,單擊操作列的配置。
在指定域名的左側導航欄,單擊緩存配置。
單擊狀態碼過期時間頁簽。
單擊添加,配置狀態碼過期時間。
類型
注意事項
類型
支持目錄和文件后綴名這兩種類型,請根據您的實際需求選擇。
說明不同類型規則的生效優先級:文件后綴名>目錄,具體請參見多條規則生效說明。
地址
類型選擇為目錄,填寫說明如下:
每次只能添加一條目錄。
支持輸入目錄的完整路徑,須以正斜線(/)開頭,例如/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(也支持)。
單擊確定,完成配置。
成功配置狀態碼過期時間后,您可以在狀態碼過期時間列表中,對當前的配置進行修改或刪除操作。
配置示例
示例一:目錄類型規則
創建目錄類型規則如下圖所示:
在/directory/aaa目錄下,所有4xx狀態碼緩存時間為10秒,201狀態碼緩存時間為15秒,在該時間區間內,由DCDN節點直接響應對應的訪問請求;超過該時間后,會觸發回源。
示例二:文件后綴名類型規則
創建文件后綴名類型規則如下圖所示:
文件后綴為.jpg或.txt類型,403狀態碼緩存時間為10秒,404狀態碼緩存時間為15秒,在該時間區間內,由DCDN節點直接響應對應的訪問請求;超過該時間后,會觸發回源。
示例三:不同類型規則的生效優先級
分別創建了一條“目錄類型規則”和一條“文件后綴名類型規則”,設置了不同的狀態碼過期時間,如下圖所示:
用戶請求
http://example.com/directory/aaa/test.jpg
,DCDN節點上沒有緩存資源,DCDN節點向源站請求資源,源站響應了404狀態碼,這里同時匹配上了“目錄類型規則”和“文件后綴名類型規則”,因為在規則類型不同的情況下,規則生效優先級是文件后綴名>目錄,所以“文件后綴名類型規則”生效,404狀態碼的實際緩存時間是20秒。示例四:相同類型多條規則的生效優先級
先創建了一條“目錄類型規則一”,匹配的地址是“/directory”,然后再創建另一條“目錄類型規則二”,匹配的地址是“/directory/aaa”,設置了不同的狀態碼過期時間,如下圖所示:
用戶請求
http://example.com/directory/aaa/test.jpg
,DCDN節點上沒有緩存資源,DCDN節點向源站請求資源,源站響應了404狀態碼,這里同時匹配上了兩條“目錄類型規則”,因為在規則類型相同的情況下,規則生效優先級是早創建的>晚創建的,所以最早創建的“目錄類型規則一”生效,404狀態碼的實際緩存時間是15秒。