內(nèi)容分發(fā)網(wǎng)絡(Content Delivery Network,CDN)通過將源站內(nèi)容緩存至遍布全球的海量加速節(jié)點,使用戶可就近獲取所需內(nèi)容,避免因網(wǎng)絡擁堵、跨運營商、跨地域、跨境等因素帶來的網(wǎng)絡不穩(wěn)定、訪問延遲高等問題,有效提升下載速度、降低響應時間,提供流暢的用戶體驗。
1.源站和CDN的關(guān)系
源站:指用戶穩(wěn)定運行的業(yè)務服務器,騰訊云CDN的源站可以選擇自有源站或?qū)ο蟠鎯Γv訊云COS&第三方對象存儲)。
域名接入CDN之后,用戶請求CDN獲取靜態(tài)資源時,CDN節(jié)點便會回到源站獲取資源,之后緩存到CDN節(jié)點本地Cache中,下次訪問相同資源時,便可以在節(jié)點直接返回,而不需要再回到源站獲取資源,利用騰訊云遍布全球的CDN節(jié)點與精準的智能調(diào)度方案,可以極大的提升終端用戶的訪問體驗。
2.源站基礎(chǔ)配置說明
騰訊云CDN支持配置域名源站基本信息、回源請求協(xié)議、回源HOST等信息,可在源站配置模塊進行相關(guān)操作,接下來我們看一些基本的源站配置:
登錄騰訊云CDN控制臺,在菜單欄里選擇【域名管理】,單擊域名右側(cè)【管理】,即可進入域名配置頁面,第一欄中基本信息下方即為源站配置模塊:
騰訊云CDN支持豐富的源站配置,接下來分別進行介紹:
(1)主源站配置
(2)回源協(xié)議
CDN加速節(jié)點回源到用戶源站時使用的協(xié)議。
存在HTTPS回源情況下,請保證源站支持HTTPS訪問,否則會導致回源失敗。
(3)回源HOST
即回源域名,CDN節(jié)點在回源時,訪問的源站IP地址下具體的站點域名。
-當源站為自有源時,默認為當前加速域名。若接入泛域名,則默認為泛域名,且實際回源HOST為訪問域名。您可根據(jù)實際業(yè)務情況自行修改。
-當源站為COS源或者第三方對象存儲源時,默認為存儲桶訪問地址,與源站地址一致,不可修改。
源站地址和回源HOST的區(qū)別如下:
源站地址:源站地址決定了回源時請求到的具體IP地址。
回源HOST:回源HOST決定了回源請求訪問到該IP地址上的具體站點。
(4)熱備源站配置
您可以為您的主源站添加熱備源站,所有回源請求均會先訪問主源站,若返回為4XX/5XX錯誤碼,或鏈接超時、協(xié)議不兼容等情況后,會再次回源至熱備源站進行資源拉取,保障用戶回源高可用。
支持針對熱備源站獨立配置源站地址和回源HOST。
熱備源站注意事項:
1、熱備源的源站類型不支持COS源和第三方對象存儲。
2、若主源站開啟了IPv6源站,則不支持添加熱備源站。
3、熱備源站不支持配置權(quán)重。
以上就是騰訊云CDN源站配置的簡單介紹。
3.如何保證CDN和源站內(nèi)容同步?
既然CDN上緩存了大量的源站資源,那就遇到一個問題,即:在源站資源變動之后,如何保證CDN節(jié)點上的資源與源站內(nèi)容同步?
針對這個問題,主要有兩個方法,接下來分別進行介紹:
測試資源:http://cdn-purge-1300432670.file.myqcloud.com/test-1.txt
Etag:"d41d8cd98f00b204e9800998ecf8427e"
特殊名詞解釋
Etag:騰訊云COS資源的唯一ID。如通過PUT Object上傳的對象,則為上傳文件內(nèi)容的MD5值,如通過分塊上傳或使用歷史版本API上傳的對象,為上傳文件內(nèi)容的唯一ID,不具備校驗功能。
首先我們可以通過控制臺的預熱功能先將目標資源在節(jié)點上進行緩存預熱,保證節(jié)點上都有緩存的資源。
(1)控制臺刷新
我們可以在源站資源變更之后,通過控制臺主動進行刷新,以URL刷新為例,測試請求可以看到請求命中了緩存,此時文件的Etag與COS中的資源保持一致。
接下來更新cos中的資源,更新后的Etag為:
"3ffb2b343fab46288094b3613016d8c4"
測試請求,可以看到由于緩存尚未過期,訪問資源1.txt仍為舊的內(nèi)容,CDN與源站出現(xiàn)了不一致:
此時我們可以通過控制臺主動對資源進行刷新:
等待刷新成功
再次請求
可以發(fā)現(xiàn)節(jié)點上的緩存已經(jīng)失效,請求直接回源,拉取到了最新的資源。
(2)緩存鍵優(yōu)化
騰訊云CDN在進行緩存時使用的是Key-Value格式進行資源映射,其中的Key即緩存鍵,是緩存資源的唯一標識。您可通過緩存鍵規(guī)則配置,對不同文件類型的內(nèi)容配置忽略參數(shù)和忽略大小寫來進行緩存鍵優(yōu)化。
例如,我們可以通過配置忽略參數(shù),保留URL的指定參數(shù)作為緩存鍵的方式,來實現(xiàn)CDN與源站資源的同步。
接下來進行演示:
我們在URL中使用version來標識文件版本
然后再次進行預熱
可以看到請求命中了節(jié)點緩存,version=1的文件的etag為:
3ffb2b343fab46288094b3613016d8c4
此時我們更新源站文件
并更新URL的version=3來請求
可以看到?jīng)]有命中緩存,而是直接回源獲取到了最新的資源。
4.高級回源配置
通過以上的例子,我們可以看到,合理配置源站與緩存鍵,可以實現(xiàn)各種便捷的功能。
此外,騰訊云CDN還支持高級回源設置,支持更細粒度的回源配置,根據(jù)不同規(guī)則回源到不同的源站地址。例如:分路徑回源(指定文件類型、文件夾、全路徑文件(如:/test/1.jpg)、首頁回源)等。
可以在在左側(cè)菜單欄選擇【域名管理】,單擊域名操作列的【管理】,進入域名配置頁面,Tab【基礎(chǔ)配置】頁中【源站信息】模塊最下方即可看到【高級回源配置】,歡迎大家進行體驗!