作者:辰舒
使用CDN加速靜態(tài)資源時,CDN會將源站上的資源緩存到距離客戶端最近的CDN節(jié)點上。當您訪問該靜態(tài)資源時,可直接從CDN的緩存節(jié)點上獲取,有效避免通過較長的鏈路回源,提高資源訪問效率。在本章節(jié)中,我們共同學習如何通過合理配置CDN緩存功能來提升業(yè)務緩存的利用率,實現(xiàn)終端用戶訪問體驗的提升。
準備工作
- 已經(jīng)添加完成的CDN域名
- 阿里云CDN控制臺。
緩存配置及工作機制
在正式開始配置之前,我們需要先了解緩存的形式和原理機制。
默認Cachekey
Cachekey是一個文件在CDN節(jié)點上緩存時唯一的身份ID,每個在CDN節(jié)點上緩存的文件都對應一個Cachekey。文件的Cachekey默認為客戶端請求的URL(帶參數(shù))。
即 默認情況下,緩存內(nèi)容的索引名(Cachekey)受到 域名、路徑、參數(shù) 三大因素共同影響。我們可以理解為,對于同一個邊緣節(jié)點,請求信息中三者完全一致的情況下將使用同一份緩存內(nèi)容,三者中有任一因素變化則無法使用同一份緩存。
當我們的訪問鏈接中路徑變更或參數(shù)變更時,均會生成獨立緩存。為了提升緩存效率,我們需要對業(yè)務思考以下四個問題:
- 業(yè)務訪問時,訪問URL中是否攜帶參數(shù)(可以分析源站nginx訪問日志或業(yè)務代碼的實現(xiàn)邏輯),這些參數(shù)的作用是什么,攜帶參數(shù)不同是否會影響文件響應的內(nèi)容(或 參數(shù)是否會影響源站處理行為)?
如果您的URL中攜帶變化的參數(shù),默認會影響緩存命中率和加速效果,推薦關注下文「緩存優(yōu)化-忽略參數(shù)緩存」部分內(nèi)容。
- 業(yè)務文件內(nèi)容更新時,文件的路徑(目錄/文件名)是否會發(fā)生變化?
如果您的文件內(nèi)容以同名文件覆蓋的形式進行更新,推薦關注【緩存時間配置】中的配置引導,針對內(nèi)容頻繁更新的資源降低緩存時間。
- 您的業(yè)務中大文件緩存(平均大于20M)是否較多?
如果您的業(yè)務中大文件較多,提升緩存及回源效率推薦開啟range分片功能,推薦關注下文「緩存優(yōu)化-range回源」部分內(nèi)容。
- 您的業(yè)務中是否需求針對完全相同的訪問URL區(qū)分不同的緩存?
即同一個uri對應的資源有多個版本,例如同一個頁面的不同壓縮格式,一個圖片的不同尺寸(甚至也可能是完全不同的內(nèi)容),服務端通過收到的請求的uri以及一些決定版本的頭部信息來確定應該給客戶端返回哪個版本,推薦關注下文「緩存優(yōu)化-多副本及自定義緩存」。
訪問URL的格式和場景和緩存利用效率息息相關,在下文的內(nèi)容中,我們可以通過忽略參數(shù)緩存、cachekey改寫等功能,對域名的緩存索引方式進行調(diào)整,以適配您的業(yè)務場景。
小提示:在CDN使用場景中,推薦您的源站更新資源時,考慮以不同的文件名作為新舊版本區(qū)分,例如img-v1.0.jpg、img-v2.1.jpg的方式命名,以實現(xiàn)便捷區(qū)分新舊緩存的效果。
緩存更新機制
CDN緩存更新主要有兩種方式:
- 超出緩存的過期時間
當CDN節(jié)點上的緩存失效后,緩存不會立即被清理,在源站返回last-modified/etag頭部情況下,CDN將會回源發(fā)起緩存有效性校驗(即協(xié)商緩存)。
可以通俗地理解為,CDN將之前緩存文件的標識信息帶回源站詢問是否發(fā)生變化。文章來源:http://www.zghlxwxcb.cn/news/detail-830562.html
- 如源站內(nèi)容未發(fā)生變化,源站將返回304狀態(tài)碼,CDN節(jié)點僅更新緩存的有效周期,不變更緩存內(nèi)容,截止下次緩存時間到期前不會再次回源;
- 如源站內(nèi)容發(fā)生變化,源站將返回200狀態(tài)碼和更新后的內(nèi)容,CDN節(jié)點將更新緩存的有效周期并覆蓋緩存內(nèi)容,實現(xiàn)文件更新的效果。
- 主動更新
當CDN節(jié)點上的緩存未失效,但源站內(nèi)容已經(jīng)發(fā)生變化,業(yè)務上需要立即更新CDN上資源的緩存時,需要使用CDN的緩存刷新功能,您需要通過 CDN控制臺-刷新預熱 或者 API接口 下發(fā)緩存的刷新任務,詳細操作和說明將在文章來源地址http://www.zghlxwxcb.cn/news/detail-830562.html
到了這里,關于秒懂邊緣云 | CDN基礎入門:CDN緩存配置及優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!