如何保證CDN和源站內(nèi)容同步?

來源: 騰訊云CDN
作者:雷鎮(zhèn)豪&騰訊云CDN
時間:2021-09-15
18802
內(nèi)容分發(fā)網(wǎng)絡(Content Delivery Network,CDN)通過將源站內(nèi)容緩存至遍布全球的海量加速節(jié)點,使用戶可就近獲取所需內(nèi)容,避免因網(wǎng)絡擁堵、跨運營商、跨地域、跨境等因素帶來的網(wǎng)絡不穩(wěn)定、訪問延遲高等問題,有效提升下載速度、降低響應時間,提供流暢的用戶體驗。

內(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è)【管理】,即可進入域名配置頁面,第一欄中基本信息下方即為源站配置模塊:

1A6A5BBC-4215-4710-BD23-A4464B068F0C.png

騰訊云CDN支持豐富的源站配置,接下來分別進行介紹:

(1)主源站配置

30AF1473-B2F3-480D-AABC-5A9D4AA4A13A.jpeg

(2)回源協(xié)議

CDN加速節(jié)點回源到用戶源站時使用的協(xié)議。

7D990EE5-3518-4B45-B53C-6F4B7212AA06.jpeg

存在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"

390B94FF-DFE8-4947-B044-C24A1F51D4E9.png

特殊名詞解釋

Etag:騰訊云COS資源的唯一ID。如通過PUT Object上傳的對象,則為上傳文件內(nèi)容的MD5值,如通過分塊上傳或使用歷史版本API上傳的對象,為上傳文件內(nèi)容的唯一ID,不具備校驗功能。

首先我們可以通過控制臺的預熱功能先將目標資源在節(jié)點上進行緩存預熱,保證節(jié)點上都有緩存的資源。

3855B523-47E4-4208-A7DB-F8FACEEB3EEF.png

(1)控制臺刷新

我們可以在源站資源變更之后,通過控制臺主動進行刷新,以URL刷新為例,測試請求可以看到請求命中了緩存,此時文件的Etag與COS中的資源保持一致。

E75A7AA9-9E80-4525-94C9-110FEC8B22B4.png

接下來更新cos中的資源,更新后的Etag為:

"3ffb2b343fab46288094b3613016d8c4"

8E5A0C9E-8937-4BAD-9F0B-8EC884A9B9AD.png

測試請求,可以看到由于緩存尚未過期,訪問資源1.txt仍為舊的內(nèi)容,CDN與源站出現(xiàn)了不一致:

011FFE5A-81C0-4107-B86C-58B684A7BF41.png

此時我們可以通過控制臺主動對資源進行刷新:

E52F9D39-7DE2-47FD-A8E6-9E46F8B86C80.png

等待刷新成功

AD40FC41-E3D6-42C8-ACC2-C96F30FE3D5E.png

再次請求

1FD1C553-CDC6-432F-BB52-FAC2018CDB0D.png

可以發(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來標識文件版本

74C4DC1B-E421-4CD6-BA8E-614DE2B541F6.png

然后再次進行預熱

7A59E1A3-6632-4B08-A7B6-277C58884926.png

可以看到請求命中了節(jié)點緩存,version=1的文件的etag為:

3ffb2b343fab46288094b3613016d8c4

E28F53E7-E64E-4F05-81C9-6FD7FE944796.png

此時我們更新源站文件

A4D3443C-021E-4903-AD85-566FAC03EB12.png

并更新URL的version=3來請求

C3380B39-CD28-4F6A-BB9C-B60DE55EAD08.png

可以看到?jīng)]有命中緩存,而是直接回源獲取到了最新的資源。

4.高級回源配置

通過以上的例子,我們可以看到,合理配置源站與緩存鍵,可以實現(xiàn)各種便捷的功能。

此外,騰訊云CDN還支持高級回源設置,支持更細粒度的回源配置,根據(jù)不同規(guī)則回源到不同的源站地址。例如:分路徑回源(指定文件類型、文件夾、全路徑文件(如:/test/1.jpg)、首頁回源)等。

可以在在左側(cè)菜單欄選擇【域名管理】,單擊域名操作列的【管理】,進入域名配置頁面,Tab【基礎(chǔ)配置】頁中【源站信息】模塊最下方即可看到【高級回源配置】,歡迎大家進行體驗!

EDAA57FD-D8E6-40B0-9530-0C16671DD857.png

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于騰訊云CDN,本站不擁有所有權(quán),不承擔相關(guān)法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多