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

來源: 騰訊云CDN
作者:雷鎮(zhèn)豪&騰訊云CDN
時(shí)間:2021-09-15
18839
內(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)。

內(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è)面,第一欄中基本信息下方即為源站配置模塊:

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

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

(1)主源站配置

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

(2)回源協(xié)議

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

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

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

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

特殊名詞解釋

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)上都有緩存的資源。

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

(1)控制臺(tái)刷新

我們可以在源站資源變更之后,通過控制臺(tái)主動(dòng)進(jìn)行刷新,以URL刷新為例,測(cè)試請(qǐng)求可以看到請(qǐng)求命中了緩存,此時(shí)文件的Etag與COS中的資源保持一致。

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

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

"3ffb2b343fab46288094b3613016d8c4"

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

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

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

此時(shí)我們可以通過控制臺(tái)主動(dòng)對(duì)資源進(jìn)行刷新:

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

等待刷新成功

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

再次請(qǐng)求

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

可以發(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í)文件版本

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

然后再次進(jìn)行預(yù)熱

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

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

3ffb2b343fab46288094b3613016d8c4

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

此時(shí)我們更新源站文件

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

并更新URL的version=3來請(qǐng)求

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

可以看到?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)!

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

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于騰訊云CDN,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
騰訊云數(shù)據(jù)庫(kù)PostgreSQL全面支持PG 17
騰訊云數(shù)據(jù)庫(kù)PostgreSQL全面支持PG 17
即日起,騰訊云PostgreSQL全面支持PostgreSQL 17.0。所有用戶可使用大版本升級(jí)能力升級(jí)至最新的PostgreSQL 17.0進(jìn)行體驗(yàn),也可以在產(chǎn)品購(gòu)買頁(yè)直接購(gòu)買。
騰訊云
云服務(wù)
2024-12-152024-12-15
高可用這個(gè)問題,加機(jī)器就能解決?
高可用這個(gè)問題,加機(jī)器就能解決?
互聯(lián)網(wǎng)服務(wù)的可用性問題是困擾企業(yè)IT人員的達(dá)摩克利斯之劍:防于未然,體現(xiàn)不出價(jià)值。已然發(fā)生,又面臨P0危機(jī)。就更別提穩(wěn)定性建設(shè)背后顯性的IT預(yù)算問題與隱性的人員成本問題。
騰訊云
云服務(wù)
2024-11-252024-11-25
TDSQL TDStore引擎版替換HBase:在歷史庫(kù)場(chǎng)景中的成本與性能優(yōu)勢(shì)
TDSQL TDStore引擎版替換HBase:在歷史庫(kù)場(chǎng)景中的成本與性能優(yōu)勢(shì)
HBase憑借其高可用性、高擴(kuò)展性和強(qiáng)一致性,以及在廉價(jià)PC服務(wù)器上的低部署成本,廣泛應(yīng)用于大規(guī)模數(shù)據(jù)分析。
騰訊云
云服務(wù)
2024-11-042024-11-04
復(fù)雜查詢性能弱,只讀分析引擎來幫忙
復(fù)雜查詢性能弱,只讀分析引擎來幫忙
隨著當(dāng)今業(yè)務(wù)的高速發(fā)展,復(fù)雜多表關(guān)聯(lián)的場(chǎng)景越來越普遍。但基于行式存儲(chǔ)的數(shù)據(jù)庫(kù)在進(jìn)行復(fù)雜查詢時(shí)性能相對(duì)較弱。
騰訊云
云服務(wù)
2024-11-022024-11-02
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家