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