CDN緩存key攜帶問號后參數導致緩存命中率低
更新時間 2024-10-08 17:59:30
最近更新時間: 2024-10-08 17:59:30
分享文章
本文介紹CDN緩存key攜帶問號后參數導致緩存命中率低的問題的解決方案。
背景說明
CDN緩存key是文件存儲在CDN節點上的唯一ID,CDN將以此為標識來緩存不同文件。如果用戶請求某個文件時,都會攜帶問號后參數,如//www.daliqc.cn/a.html?b=1,且每個用戶訪問的參數值不一樣,則在關閉去問號緩存時,用戶的每個請求都會在CDN節點上緩存為不同文件,每個請求都將透傳回源,造成域名總體緩存命中率低,無加速效果的同時,會對源站造成極大壓力。
解決方案
如果不同URL問號后參數僅值不同,對應的文件內容實際一樣時,需要開啟去問號緩存。即:如果用戶A和用戶B分別請求//www.daliqc.cn/a.html?b=1和//www.daliqc.cn/a.html?b=2,實際在源站均返回相同的html文件,則此時可在CDN控制臺上開啟去問號緩存,具體開啟方式可參考緩存過期時間設置里的配置說明。開啟該選項后,CDN將對這兩個請求統一緩存為//www.daliqc.cn/a.html,此時無論用戶請求問號后帶什么參數和值,均可以命中該緩存。
此外,如果用戶請求的URL中存在多個問號后參數,如//www.daliqc.cn/a.html?b=1&c=2&d=3,源站針對某個特定參數b值不一樣時會返回不同內容,此時可以通過“自定義緩存key”功能中的保留特定參數緩存功能來提升命中率(緩存參數中僅保留參數b緩存);類似的,如果用戶請求的URL中存在多個問號后參數,如//www.daliqc.cn/a.html?b=1&c=2&d=3,源站針對所有參數除了d以外均會基于參數值不同返回不同內容,則此時可配置去掉特定參數緩存功能(緩存參數中去掉參數d緩存),詳情請見:緩存key設置。