配置狀態(tài)碼過(guò)期時(shí)間
CDN節(jié)點(diǎn)從源站獲取資源時(shí),源站會(huì)返回響應(yīng)狀態(tài)碼,您可以在阿里云CDN上配置狀態(tài)碼緩存時(shí)間,當(dāng)客戶端再次請(qǐng)求相同資源時(shí),由CDN直接響應(yīng)狀態(tài)碼,不會(huì)觸發(fā)回源,減輕源站壓力。當(dāng)狀態(tài)碼超過(guò)設(shè)置的緩存時(shí)間,會(huì)重新觸發(fā)回源。
適用場(chǎng)景
配置狀態(tài)碼過(guò)期時(shí)間主要適用于源站響應(yīng)了異常狀態(tài)碼的情況下,用于指定CDN節(jié)點(diǎn)上執(zhí)行的緩存處理動(dòng)作。
正常情況下CDN節(jié)點(diǎn)成功從源站獲取到所請(qǐng)求的資源,即源站響應(yīng)了2xx狀態(tài)碼時(shí),會(huì)按照阿里云CDN默認(rèn)緩存規(guī)則及優(yōu)先級(jí)進(jìn)行緩存。如果源站無(wú)法迅速響應(yīng)所有狀態(tài)碼(例如非2xx狀態(tài)碼),且不希望所有請(qǐng)求全部由源站響應(yīng),那么可以配置狀態(tài)碼過(guò)期時(shí)間,由CDN節(jié)點(diǎn)直接響應(yīng)狀態(tài)碼,減輕源站壓力。
典型場(chǎng)景
文件A在源站已被刪除,但客戶端仍持續(xù)訪問(wèn),CDN節(jié)點(diǎn)沒(méi)有緩存文件A,所有針對(duì)文件A的請(qǐng)求都將被轉(zhuǎn)發(fā)回源,由源站響應(yīng)4xx狀態(tài)碼,這將會(huì)大幅增加源站的壓力。如果CDN節(jié)點(diǎn)上配置了緩存4xx狀態(tài)碼,那么CDN節(jié)點(diǎn)針對(duì)文件A的請(qǐng)求首次回源后,會(huì)緩存4xx狀態(tài)碼,在預(yù)設(shè)緩存時(shí)間內(nèi),當(dāng)客戶端再次請(qǐng)求文件A時(shí),將會(huì)由CDN節(jié)點(diǎn)直接響應(yīng)4xx狀態(tài)碼,無(wú)需回源。
異常狀態(tài)碼緩存規(guī)則
對(duì)于204、305、400、403、404、405、414、500、501、502、503和504狀態(tài)碼,緩存規(guī)則如下圖所示:
請(qǐng)求通過(guò)配置Range回源時(shí),緩存規(guī)則如下:
非200、206狀態(tài)碼(包含但不限于204、305、400、403、404、405、414、500、501、502、503和504狀態(tài)碼)的情況下,均不緩存。
200、206狀態(tài)碼按照阿里云CDN默認(rèn)緩存規(guī)則及優(yōu)先級(jí)進(jìn)行緩存。
收到5xx狀態(tài)碼會(huì)刪除已緩存的分片文件(回源超時(shí)不會(huì)刪除緩存文件)。
說(shuō)明Range回源情況下,源站會(huì)把一個(gè)大文件分割成多個(gè)小的文件分片來(lái)返回給CDN節(jié)點(diǎn)。比如有個(gè)文件被分割成了10個(gè)分片,CDN節(jié)點(diǎn)已經(jīng)緩存了5個(gè)分片,在請(qǐng)求第6個(gè)分片時(shí),源站響應(yīng)了5xx狀態(tài)碼,這時(shí)會(huì)把前面已經(jīng)緩存的5個(gè)分片全部刪除。
請(qǐng)求未通過(guò)配置Range回源時(shí),按照如下規(guī)則緩存:
如果源站返回
set-cookie
響應(yīng)頭,CDN不緩存。如果源站沒(méi)有返回
Set-Cookie
響應(yīng)頭,則遵循CDN控制臺(tái)配置的狀態(tài)碼過(guò)期時(shí)間來(lái)緩存,配置多條規(guī)則時(shí)生效方式請(qǐng)參考多條規(guī)則生效優(yōu)先級(jí)說(shuō)明。如果源站沒(méi)有返回
Set-Cookie
響應(yīng)頭,CDN控制臺(tái)也沒(méi)有配置狀態(tài)碼過(guò)期時(shí)間,則按照源站設(shè)置的Pragma
、Cache-Control
或者Expires
響應(yīng)頭來(lái)緩存。如果源站沒(méi)有返回
Set-Cookie
、Pragma
、Cache-Control
或者Expires
響應(yīng)頭,CDN控制臺(tái)也沒(méi)有配置狀態(tài)碼過(guò)期時(shí)間,則默認(rèn)緩存1秒。
對(duì)于303、304、401、407、600和601狀態(tài)碼,CDN均不進(jìn)行緩存。
多條規(guī)則生效優(yōu)先級(jí)說(shuō)明
支持設(shè)置多條狀態(tài)碼緩存規(guī)則,當(dāng)某個(gè)請(qǐng)求同時(shí)匹配了多條規(guī)則時(shí),只會(huì)有一條規(guī)則生效,生效規(guī)則如下:
判斷順序:
先判斷規(guī)則類型(文件后綴名>目錄),再判斷規(guī)則創(chuàng)建時(shí)間(先創(chuàng)建的>后創(chuàng)建的)。
不同類型規(guī)則的生效優(yōu)先級(jí):文件后綴名>目錄。
例如,如果用戶的請(qǐng)求同時(shí)匹配了2條規(guī)則(均配置了404狀態(tài)碼),規(guī)則類型分別為文件后綴名和目錄類型,404狀態(tài)碼的過(guò)期時(shí)間以類型為文件后綴名的規(guī)則為準(zhǔn)。具體示例,請(qǐng)參見(jiàn)配置示例。
相同類型規(guī)則的生效優(yōu)先級(jí):先創(chuàng)建的>后創(chuàng)建的(規(guī)則列表由上而下)。
例如,如果用戶的請(qǐng)求同時(shí)匹配2條規(guī)則(均配置了404狀態(tài)碼),規(guī)則類型相同(均為文件后綴名或均為目錄類型),404狀態(tài)碼的過(guò)期時(shí)間以“最早創(chuàng)建”的規(guī)則為準(zhǔn)。具體示例,請(qǐng)參見(jiàn)配置示例。
操作步驟
登錄CDN控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊域名管理。
在域名管理頁(yè)面,找到目標(biāo)域名,單擊操作列的管理。
在指定域名的左側(cè)導(dǎo)航欄,單擊緩存配置。
單擊狀態(tài)碼過(guò)期時(shí)間頁(yè)簽。
單擊添加,配置狀態(tài)碼過(guò)期時(shí)間。
類型
注意事項(xiàng)
類型
支持目錄和文件后綴名這兩種類型,請(qǐng)根據(jù)您的實(shí)際需求選擇。
說(shuō)明不同類型規(guī)則的生效優(yōu)先級(jí):文件后綴名>目錄,具體請(qǐng)參見(jiàn)異常狀態(tài)碼緩存規(guī)則。
地址
類型選擇為目錄,填寫(xiě)說(shuō)明如下:
每次只能添加一條目錄。
支持輸入目錄的完整路徑,須以正斜線(/)開(kāi)頭,例如/directory/aaa。
類型選擇為文件后綴名,填寫(xiě)說(shuō)明如下:
支持輸入一個(gè)或多個(gè)文件后綴名,多個(gè)文件后綴名用半角逗號(hào)(,)分隔,例如
jpg,txt
。說(shuō)明不同記錄中配置的文件后綴名類型完全相同,僅有大小寫(xiě)區(qū)分時(shí),后面創(chuàng)建的會(huì)覆蓋掉前面創(chuàng)建的,例如創(chuàng)建jpg,txt規(guī)則后,再創(chuàng)建jpg,txt規(guī)則時(shí),會(huì)覆蓋掉之前創(chuàng)建的jpg,txt記錄。此時(shí),如果需要配置小寫(xiě)規(guī)則,可以單獨(dú)創(chuàng)建txt和jpg的規(guī)則。配置規(guī)則實(shí)際生效的時(shí)候是嚴(yán)格區(qū)分大小寫(xiě)。
不支持用星號(hào)(*)匹配所有的文件類型。
狀態(tài)碼過(guò)期時(shí)間設(shè)置
需要緩存的狀態(tài)碼及其緩存時(shí)間,最長(zhǎng)可設(shè)置3年,單位:秒,配置規(guī)則如下:
多個(gè)狀態(tài)碼用半角逗號(hào)(,)分隔。
對(duì)于2xx、3xx狀態(tài)碼,僅支持單個(gè)精準(zhǔn)配置,不支持模糊批量配置。例如,201=10(支持),2xx=12(不支持)。
對(duì)于4xx、5xx狀態(tài)碼,既支持單個(gè)精準(zhǔn)配置,也支持模糊批量配置。例如,401=10(支持),4xx=12(也支持)。
單擊確定,完成配置。
成功配置狀態(tài)碼過(guò)期時(shí)間后,您可以在狀態(tài)碼過(guò)期時(shí)間列表中,對(duì)當(dāng)前的配置進(jìn)行修改或刪除操作。
配置示例
示例一:目錄類型規(guī)則
創(chuàng)建目錄類型規(guī)則如下圖所示:
在/directory/aaa目錄下,所有4xx狀態(tài)碼緩存時(shí)間為10秒,201狀態(tài)碼緩存時(shí)間為15秒,在該時(shí)間區(qū)間內(nèi),由CDN節(jié)點(diǎn)直接響應(yīng)對(duì)應(yīng)的訪問(wèn)請(qǐng)求;超過(guò)該時(shí)間后,會(huì)觸發(fā)回源。
示例二:文件后綴名類型規(guī)則
創(chuàng)建文件后綴名類型規(guī)則如下圖所示:
文件后綴為.jpg或.txt類型,403狀態(tài)碼緩存時(shí)間為10秒,404狀態(tài)碼緩存時(shí)間為15秒,在該時(shí)間區(qū)間內(nèi),由CDN節(jié)點(diǎn)直接響應(yīng)對(duì)應(yīng)的訪問(wèn)請(qǐng)求;超過(guò)該時(shí)間后,會(huì)觸發(fā)回源。
示例三:不同類型規(guī)則的生效優(yōu)先級(jí)
分別創(chuàng)建了一條“目錄類型規(guī)則”和一條“文件后綴名類型規(guī)則”,設(shè)置了不同的狀態(tài)碼過(guò)期時(shí)間,如下圖所示:
用戶請(qǐng)求
http://example.com/directory/aaa/test.jpg
,CDN節(jié)點(diǎn)上沒(méi)有緩存資源,CDN節(jié)點(diǎn)向源站請(qǐng)求資源,源站響應(yīng)了404狀態(tài)碼,這里同時(shí)匹配上了“目錄類型規(guī)則”和“文件后綴名類型規(guī)則”,因?yàn)樵谝?guī)則類型不同的情況下,規(guī)則生效優(yōu)先級(jí)是文件后綴名>目錄,所以“文件后綴名類型規(guī)則”生效,404狀態(tài)碼的實(shí)際緩存時(shí)間是20秒。示例四:相同類型多條規(guī)則的生效優(yōu)先級(jí)
先創(chuàng)建了一條“目錄類型規(guī)則一”,匹配的地址是“/directory”,然后再創(chuàng)建另一條“目錄類型規(guī)則二”,匹配的地址是“/directory/aaa”,設(shè)置了不同的狀態(tài)碼過(guò)期時(shí)間,如下圖所示:
用戶請(qǐng)求
http://example.com/directory/aaa/test.jpg
,CDN節(jié)點(diǎn)上沒(méi)有緩存資源,CDN節(jié)點(diǎn)向源站請(qǐng)求資源,源站響應(yīng)了404狀態(tài)碼,這里同時(shí)匹配上了兩條“目錄類型規(guī)則”,因?yàn)樵谝?guī)則類型相同的情況下,規(guī)則生效優(yōu)先級(jí)是早創(chuàng)建的>晚創(chuàng)建的,所以最早創(chuàng)建的“目錄類型規(guī)則一”生效,404狀態(tài)碼的實(shí)際緩存時(shí)間是15秒。