功能介紹
緩存key是一個文件在CDN節點上緩存時唯一的身份ID,每個在CDN節點上緩存的文件都會對應一個緩存key。通常默認情況下,文件的緩存key為客戶端請求的原始URL(帶參數)。
通過自定義緩存key,可以將原始URL形式不同但實際指向同一個文件的請求,緩存為同一份,從而提升緩存命中率,降低回源量。
適用場景
如果客戶端請求不同URL時,實際指向同一份緩存文件,則可以通過自定義緩存key功能來實現將其在CDN節點上映射為同一份文件,避免出現被緩存成不同文件而導致回源率高的問題。
配置說明
緩存參數
- 登錄。
- 單擊左側導航欄【域名管理】-【域名列表】。
- 在【域名列表】頁面,找到目標域名,單擊【操作】列的【編輯】。
- 單擊右側【緩存配置】。
- 在【緩存參數】模塊,單擊【增加規則】,彈出的對話框中,根據需求填寫緩存參數。
- 單擊【保存】,完成配置。
| 參數名 | 配置值 | 說明 |
|---|---|---|
| 類型 | 后綴名/目錄/首頁/全部文件/全路徑文件 | 需要配置的文件類型。 |
| 內容 | 指定類型的具體內容 | 類型選擇后綴名、目錄、全路徑文件時,需配置具體內容;例如類型為后綴名時,需在內容處指明具體的文件后綴;如類型為目錄時,需在內容處指明具體的目錄內容。 |
| 忽略參數 | 不忽略/全部忽略/保留指定參數/忽略指定參數 | 緩存參數配置類型。 1.如選擇不忽略,則為帶參數緩存。 2.如選擇全部忽略,則為去參數緩存。 3.如為保留指定參數,則僅攜帶指定參數緩存。 4.如為忽略指定參數,則為去指定參數后緩存。 |
| 優先級 | 數字 | 緩存配置的優先級;存在多條緩存參數設置時,相同文件類型及內容,執行優先級高的緩存規則。 |
緩存URI改寫
- 登錄。
- 單擊左側導航欄【域名管理】-【域名列表】。
- 在【域名列表】頁面,找到目標域名,單擊【操作】列的【編輯】。
- 單擊右側【緩存配置】。
- 在【緩存URI改寫】模塊,單擊【增加規則】,根據需求填寫緩存URI改寫前后的值。
- 單擊【保存】,完成配置。
| 參數名 | 配置值 | 說明 |
|---|---|---|
| 待改寫PATH | 需改寫的URI | 以/開頭的URI,不含//頭及域名、?及參數。支持正則表達式,如^/test$。 |
| 目標PATH | 改寫后URI | 以/開頭的URI,不含//頭及域名、?及參數。支持正則表達式,常用$1、$2來捕獲待改寫path中圓括號內的字符串。 |
配置示例
- 保留指定參數緩存
參數名 參數值 類型 后綴名 內容 html 忽略參數 保留指定參數 指定參數 a=$arg_a
結果說明 :保留a參數進行緩存。
適用場景:
用戶訪問URL形式為://www.daliqc.cn/a/a.html?a=1&c=2&d=3。
如果訪問//www.daliqc.cn/a/a.html?a=1&c=2&d=3和//www.daliqc.cn/a/a.html?a=1&c=4&d=5時,源站將返回同一文件內容;
且訪問//www.daliqc.cn/a/a.html?a=1&c=2&d=3和//www.daliqc.cn/a/a.html?a=2&c=4&d=5時,源站將返回不同文件內容。
此時可配置保留指定參數a進行緩存。配置生效后,//www.daliqc.cn/a/a.html?a=1&c=2&d=3和//www.daliqc.cn/a/a.html?a=1&c=4&d=5請求內容,都將緩存為//www.daliqc.cn/a/a.html?a=1。
注意該場景適用于源站僅針對特定參數a返回不同文件內容。如源站除針對參數a返回不同內容外,針對其他參數(例如參數b)也返回不同內容,則此時需要同時保留參數a和參數b,否則會造成緩存錯亂,響應非預期文件內容。
- 忽略指定參數緩存
參數名 參數值 類型 后綴名 內容 html 忽略參數 忽略指定參數 指定參數 d
結果說明 :忽略特定參數d緩存。
適用場景:
用戶訪問URL形式為://www.daliqc.cn/a/a.html?b=1&c=2&d=3;且有可能后期隨時增加新的參數,后期新增加的參數均需要保留對應參數緩存,且存在如下情況:
訪問//www.daliqc.cn/a/a.html?b=1&c=2&d=3和//www.daliqc.cn/a/a.html?b=1&c=2&d=5時,源站返回為同一文件。
訪問//www.daliqc.cn/a/a.html?b=1&c=2&d=3和//www.daliqc.cn/a/a.html?b=2&c=2&d=5時,源站返回為不同文件。
訪問//www.daliqc.cn/a/a.html?b=1&c=2&d=3和//www.daliqc.cn/a/a.html?b=3&c=2&d=3時,源站返回為不同文件。
此時可在CDN上配置忽略參數d緩存。配置生效后,CDN節點將會把訪問//www.daliqc.cn/a/a.html?b=1&c=2&d=3和//www.daliqc.cn/a/a.html?b=1&c=2&d=5請求內容,均緩存為//www.daliqc.cn/a/a.html?b=1&c=2。
- 緩存URI改寫
參數名 參數值 待改寫path ^/[^/]+(.+) 目標path $1
結果說明 :去掉第一級目錄緩存。
原始請求:/a/b/c.mp4。改寫后的緩存URI:/b/c.mp4。
注意事項
- CDN控制臺上“域名管理”-“緩存配置”中默認開啟去問號緩存,開啟后,如果客戶的請求URL中含有多個參數值,例如請求1為:
- //www.daliqc.cn/a/a.html?a=1和//www.daliqc.cn/a/a.html?a=2;則將這兩個請求的緩存key統一為://www.daliqc.cn/a/a.html,以達到共用同一份緩存,降低回源率的效果。
- 緩存key設置與緩存過期時間中去問號緩存同時開啟的情況下,緩存key設置優先級更高。
- 緩存key一旦設置后,一般不建議輕易變動;如果您配置緩存key生效后又再次變更,會導致原有的緩存失效,產生大量回源。
- 緩存key僅針對CDN節點緩存key生效,不影響CDN節點回源,如果設置特定的緩存URI或緩存參數,例如保留或忽略全部或特定參數,CDN節點回源時是否對URI進行改寫,以及是否攜帶對應參數,取決于“回源URI改寫”和“回源參數改寫”功能的配置情況,詳情請見:回源URI改寫、回源參數改寫。
- 當前緩存URI和緩存參數可自助配置,如需設置緩存協議及緩存host,請通過提交工單給天翼云客服,由其人工操作開啟。