一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是CDN ?CDN工作原理是什么?

程序員cxuan ? 來源:JavaGuide ? 作者:Guide ? 2022-10-21 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是 CDN ?

CDN全稱是 Content Delivery Network/Content Distribution Network,翻譯過的意思是內(nèi)容分發(fā)網(wǎng)絡(luò)。

我們可以將內(nèi)容分發(fā)網(wǎng)絡(luò)拆開來看:

內(nèi)容 :指的是靜態(tài)資源比如圖片、視頻、文檔、JS、CSS、HTML。

分發(fā)網(wǎng)絡(luò) :指的是將這些靜態(tài)資源分發(fā)到位于多個(gè)不同的地理位置機(jī)房中的服務(wù)器上,這樣,就可以實(shí)現(xiàn)靜態(tài)資源的就近訪問比如北京的用戶直接訪問北京機(jī)房的數(shù)據(jù)。

所以,簡單來說,CDN 就是將靜態(tài)資源分發(fā)到多個(gè)不同的地方以實(shí)現(xiàn)就近訪問,進(jìn)而加快靜態(tài)資源的訪問速度,減輕服務(wù)器以及帶寬的負(fù)擔(dān)。

類似于京東建立的龐大的倉儲(chǔ)運(yùn)輸體系,京東物流在全國擁有非常多的倉庫,倉儲(chǔ)網(wǎng)絡(luò)幾乎覆蓋全國所有區(qū)縣。這樣的話,用戶下單的第一時(shí)間,商品就從距離用戶最近的倉庫,直接發(fā)往對(duì)應(yīng)的配送站,再由京東小哥送到你家。

e841f26c-50fa-11ed-a3b6-dac502259ad0.png

京東倉配系統(tǒng)

你可以將 CDN 看作是服務(wù)上一層的特殊緩存服務(wù),分布在全國各地,主要用來處理靜態(tài)資源的請(qǐng)求。

e85dadf4-50fa-11ed-a3b6-dac502259ad0.png

CDN 簡易示意圖

我們經(jīng)常拿全站加速和內(nèi)容分發(fā)網(wǎng)絡(luò)做對(duì)比,不要把兩者搞混了!全站加速(不同云服務(wù)商叫法不同,騰訊云叫 ECDN、阿里云叫 DCDN)既可以加速靜態(tài)資源又可以加速動(dòng)態(tài)資源,內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)主要針對(duì)的是靜態(tài)資源。

e87aac42-50fa-11ed-a3b6-dac502259ad0.png

絕大部分公司都會(huì)在項(xiàng)目開發(fā)中交使用 CDN 服務(wù),但很少會(huì)有自建 CDN 服務(wù)的公司?;诔杀尽⒎€(wěn)定性和易用性考慮,建議直接選擇專業(yè)的云廠商(比如阿里云、騰訊云、華為云、青云)或者 CDN 廠商(比如網(wǎng)宿、藍(lán)汛)提供的開箱即用的 CDN 服務(wù)。

很多朋友可能要問了:既然是就近訪問,為什么不直接將服務(wù)部署在多個(gè)不同的地方呢?

成本太高,需要部署多份相同的服務(wù)。

靜態(tài)資源通常占用空間比較大且經(jīng)常會(huì)被訪問到,如果直接使用服務(wù)器或者緩存來處理靜態(tài)資源請(qǐng)求的話,對(duì)系統(tǒng)資源消耗非常大,可能會(huì)影響到系統(tǒng)其他服務(wù)的正常運(yùn)行。

同一個(gè)服務(wù)在在多個(gè)不同的地方部署多份(比如同城災(zāi)備、異地災(zāi)備、同城多活、異地多活)是為了實(shí)現(xiàn)系統(tǒng)的高可用而不是就近訪問。

CDN 工作原理是什么?

搞懂下面 3 個(gè)問題也就搞懂了 CDN 的工作原理:

靜態(tài)資源是如何被緩存到 CDN 節(jié)點(diǎn)中的?

如何找到最合適的 CDN 節(jié)點(diǎn)?

如何防止靜態(tài)資源被盜用?

靜態(tài)資源是如何被緩存到 CDN 節(jié)點(diǎn)中的?

你可以通過預(yù)熱的方式將源站的資源同步到 CDN 的節(jié)點(diǎn)中。這樣的話,用戶首次請(qǐng)求資源可以直接從 CDN 節(jié)點(diǎn)中取,無需回源。這樣可以降低源站壓力,提升用戶體驗(yàn)。

如果不預(yù)熱的話,你訪問的資源可能不再 CDN 節(jié)點(diǎn)中,這個(gè)時(shí)候 CDN 節(jié)點(diǎn)將請(qǐng)求源站獲取資源,這個(gè)過程是大家經(jīng)常說的回源。

命中率和回源率是衡量 CDN 服務(wù)質(zhì)量兩個(gè)重要指標(biāo)。命中率越高越好,回源率越低越好。

如果資源有更新的話,你也可以對(duì)其刷新,刪除 CDN 節(jié)點(diǎn)上緩存的資源,當(dāng)用戶訪問對(duì)應(yīng)的資源時(shí)直接回源獲取最新的資源,并重新緩存。

如何找到最合適的 CDN 節(jié)點(diǎn)?

GSLB (Global Server Load Balance,全局負(fù)載均衡)是 CDN 的大腦,負(fù)責(zé)多個(gè) CDN 節(jié)點(diǎn)之間相互協(xié)作,最常用的是基于 DNS 的 GSLB。

CDN 會(huì)通過 GSLB 找到最合適的 CDN 節(jié)點(diǎn),更具體點(diǎn)來說是下面這樣的:

瀏覽器向 DNS 服務(wù)器發(fā)送域名請(qǐng)求;

DNS 服務(wù)器向根據(jù) CNAME( Canonical Name ) 別名記錄向 GSLB 發(fā)送請(qǐng)求;

GSLB 返回性能最好(通常距離請(qǐng)求地址最近)的 CDN 節(jié)點(diǎn)(邊緣服務(wù)器,真正緩存內(nèi)容的地方)的地址給瀏覽器;

瀏覽器直接訪問指定的 CDN 節(jié)點(diǎn)。

e8c167d6-50fa-11ed-a3b6-dac502259ad0.png

CDN 原理示意圖

為了方便理解,上圖其實(shí)做了一點(diǎn)簡化。GSLB 內(nèi)部可以看作是 CDN 專用 DNS 服務(wù)器和負(fù)載均衡系統(tǒng)組合。CDN 專用 DNS 服務(wù)器會(huì)返回負(fù)載均衡系統(tǒng) IP 地址給瀏覽器,瀏覽器使用 IP 地址請(qǐng)求負(fù)載均衡系統(tǒng)進(jìn)而找到對(duì)應(yīng)的 CDN 節(jié)點(diǎn)。

GSLB 是如何選擇出最合適的 CDN 節(jié)點(diǎn)呢?GSLB 會(huì)根據(jù)請(qǐng)求的 IP 地址、CDN 節(jié)點(diǎn)狀態(tài)(比如負(fù)載情況、性能、響應(yīng)時(shí)間、帶寬)等指標(biāo)來綜合判斷具體返回哪一個(gè) CDN 節(jié)點(diǎn)的地址。

如何防止資源被盜刷?

如果我們的資源被其他用戶或者網(wǎng)站非法盜刷的話,將會(huì)是一筆不小的開支。

解決這個(gè)問題最常用最簡單的辦法設(shè)置Referer 防盜鏈,具體來說就是根據(jù) HTTP 請(qǐng)求的頭信息里面的 Referer 字段對(duì)請(qǐng)求進(jìn)行限制。我們可以通過 Referer 字段獲取到當(dāng)前請(qǐng)求頁面的來源頁面的網(wǎng)站地址,這樣我們就能確定請(qǐng)求是否來自合法的網(wǎng)站。

CDN 服務(wù)提供商幾乎都提供了這種比較基礎(chǔ)的防盜鏈機(jī)制。

e8d21324-50fa-11ed-a3b6-dac502259ad0.png

騰訊云 CDN Referer 防盜鏈配置

不過,如果站點(diǎn)的防盜鏈配置允許 Referer 為空的話,通過隱藏 Referer,可以直接繞開防盜鏈。

通常情況下,我們會(huì)配合其他機(jī)制來確保靜態(tài)資源被盜用,一種常用的機(jī)制是時(shí)間戳防盜鏈。相比之下,時(shí)間戳防盜鏈的安全性更強(qiáng)一些。時(shí)間戳防盜鏈加密的 URL 具有時(shí)效性,過期之后就無法再被允許訪問。

時(shí)間戳防盜鏈的 URL 通常會(huì)有兩個(gè)參數(shù)一個(gè)是簽名字符串,一個(gè)是過期時(shí)間。簽名字符串一般是通過對(duì)用戶設(shè)定的加密字符串、請(qǐng)求路徑、過期時(shí)間通過 MD5 哈希算法取哈希的方式獲得。

時(shí)間戳防盜鏈 URL 示例:

http://cdn.wangsu.com/4/123.mp3?wsSecret=79aead3bd7b5db4adeffb93a010298b5&wsTime=1601026312

wsSecret :簽名字符串。

wsTime: 過期時(shí)間。

e8ea6ae6-50fa-11ed-a3b6-dac502259ad0.png

時(shí)間戳防盜鏈的實(shí)現(xiàn)也比較簡單,并且可靠性較高,推薦使用。并且,絕大部分 CDN 服務(wù)提供商都提供了開箱即用的時(shí)間戳防盜鏈機(jī)制。

e909df66-50fa-11ed-a3b6-dac502259ad0.png

七牛云時(shí)間戳防盜鏈配置

除了 Referer 防盜鏈和時(shí)間戳防盜鏈之外,你還可以 IP 黑白名單配置、IP 訪問限頻配置等機(jī)制來防盜刷。

總結(jié)

CDN 就是將靜態(tài)資源分發(fā)到多個(gè)不同的地方以實(shí)現(xiàn)就近訪問,進(jìn)而加快靜態(tài)資源的訪問速度,減輕服務(wù)器以及帶寬的負(fù)擔(dān)。

基于成本、穩(wěn)定性和易用性考慮,建議直接選擇專業(yè)的云廠商(比如阿里云、騰訊云、華為云、青云)或者 CDN 廠商(比如網(wǎng)宿、藍(lán)汛)提供的開箱即用的 CDN 服務(wù)。

GSLB (Global Server Load Balance,全局負(fù)載均衡)是 CDN 的大腦,負(fù)責(zé)多個(gè) CDN 節(jié)點(diǎn)之間相互協(xié)作,最常用的是基于 DNS 的 GSLB。CDN 會(huì)通過 GSLB 找到最合適的 CDN 節(jié)點(diǎn)。

為了防止靜態(tài)資源被盜用,我們可以利用Referer 防盜鏈+時(shí)間戳防盜鏈。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9793

    瀏覽量

    87945
  • CDN
    CDN
    +關(guān)注

    關(guān)注

    0

    文章

    328

    瀏覽量

    29681

原文標(biāo)題:美團(tuán)二面:什么是 CDN ?CDN 工作原理是什么?

文章出處:【微信號(hào):cxuangoodjob,微信公眾號(hào):程序員cxuan】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何監(jiān)控RAKsmart CDN的性能?

     RAKsmart CDN擁有遍布全球的多個(gè)數(shù)據(jù)中心節(jié)點(diǎn),通過將網(wǎng)站的靜態(tài)資源緩存到這些節(jié)點(diǎn)上,使用戶能夠從距離他們最近的服務(wù)器獲取內(nèi)容,從而大大減少了頁面加載時(shí)間,提高了網(wǎng)站的訪問速度,以下是一些監(jiān)控RAKsmart CDN性能的方法。主機(jī)推薦小編為您整理發(fā)布。
    的頭像 發(fā)表于 03-31 11:06 ?219次閱讀

    cdn軟件是什么?與PCDN有什么不同

    CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))軟件是一種通過分布式服務(wù)器節(jié)點(diǎn)緩存和分發(fā)內(nèi)容的工具,旨在加速用戶訪問速度并減輕源服務(wù)器壓力。
    的頭像 發(fā)表于 02-07 09:06 ?922次閱讀

    靠譜的高防cdn費(fèi)用高嗎?

    高防CDN的成本相較于普通CDN確實(shí)更高,但費(fèi)用是否“高”需結(jié)合其防護(hù)價(jià)值和業(yè)務(wù)需求綜合判斷。高防CDN整合了內(nèi)容分發(fā)加速與DDoS攻擊防御能力,需投入大量資源構(gòu)建分布式節(jié)點(diǎn)、清洗中心以及實(shí)時(shí)監(jiān)測(cè)
    的頭像 發(fā)表于 02-05 11:06 ?381次閱讀

    cdn是什么技術(shù) cdn是怎樣提高網(wǎng)站速度的

    一、CDN技術(shù)概述 CDN,全稱Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò),是一種通過在網(wǎng)絡(luò)各處部署節(jié)點(diǎn),將內(nèi)容緩存至離用戶更近的地方,以減少數(shù)據(jù)傳輸延遲和提高訪問速度
    的頭像 發(fā)表于 01-31 15:41 ?1609次閱讀

    cdn是云服務(wù)嗎 cdn是干什么用的

    在當(dāng)今這個(gè)信息爆炸的時(shí)代,互聯(lián)網(wǎng)用戶對(duì)于內(nèi)容的加載速度和質(zhì)量有著極高的要求。無論是視頻流、圖片還是網(wǎng)頁,用戶都希望能夠在點(diǎn)擊鏈接的瞬間就能獲得響應(yīng)。為了滿足這種需求,CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))應(yīng)運(yùn)而生
    的頭像 發(fā)表于 01-19 14:30 ?2350次閱讀

    cdn的優(yōu)勢(shì)和劣勢(shì)

    CDN的優(yōu)勢(shì) 1. 加速內(nèi)容傳輸 CDN通過在全球范圍內(nèi)部署邊緣服務(wù)器,將內(nèi)容緩存到離用戶更近的地方,從而減少數(shù)據(jù)傳輸?shù)难舆t,加快內(nèi)容加載速度。這對(duì)于提高用戶體驗(yàn)至關(guān)重要,尤其是在用戶分布在全球各地
    的頭像 發(fā)表于 01-19 14:28 ?3187次閱讀

    cdn是什么類型的服務(wù)

    在當(dāng)今的數(shù)字化時(shí)代,互聯(lián)網(wǎng)已成為人們獲取信息、交流和娛樂的主要渠道。隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,用戶對(duì)網(wǎng)絡(luò)內(nèi)容的訪問速度和穩(wěn)定性的要求越來越高。為了滿足這些需求,CDN服務(wù)應(yīng)運(yùn)而生,它通過在全球范圍內(nèi)
    的頭像 發(fā)表于 01-19 14:26 ?1897次閱讀

    常見的五大cdn盒子賺錢騙局

    常見的cdn盒子賺錢騙局包括高額回報(bào)承諾、虛假項(xiàng)目和公司、設(shè)備租賃與托管、代理制度與獎(jiǎng)金制度以及虛假合同與憑證等。這些騙局往往缺乏真實(shí)的技術(shù)支撐和運(yùn)營實(shí)力,甚至可能涉及非法集資、傳銷等違法行為。以下是UU云小編整理的常見的幾種CDN盒子賺錢騙局:
    的頭像 發(fā)表于 12-06 13:25 ?3698次閱讀

    華納云:如何理解內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN

    容分發(fā)網(wǎng)絡(luò)(CDN)是一種網(wǎng)絡(luò)架構(gòu),旨在提高用戶對(duì)網(wǎng)站、應(yīng)用程序或其他互聯(lián)網(wǎng)內(nèi)容的訪問速度和性能。CDN 的主要原理是通過在全球范圍內(nèi)部署分布式服務(wù)器,將內(nèi)容緩存并提供給用戶距離Z近的服務(wù)器,從而減少加載時(shí)間、提高可用性和降低網(wǎng)絡(luò)延遲。
    的頭像 發(fā)表于 09-27 16:26 ?509次閱讀

    cdn為什么能防止ddos攻擊呢?

    Cdn技術(shù)的發(fā)展相當(dāng)速度,除了可以為網(wǎng)頁進(jìn)行簡單的提速外,還可以更好的保護(hù)網(wǎng)站安全的運(yùn)行。也就是保護(hù)它不被黑客的攻擊。但很多人對(duì)它能抵抗ddos攻擊,并不是特別了解。那么抗攻擊cdn為什么能防止
    的頭像 發(fā)表于 09-04 11:59 ?421次閱讀

    使用CDN安全嗎?CDN如何達(dá)到基本防護(hù)功能呢?

    網(wǎng)絡(luò)的普及為生活帶來極大便利,民眾能夠在不出門的情況下透過網(wǎng)絡(luò)完成各種大小事務(wù)。線上服務(wù)已成為日常生活中不可或缺的一部分,提供線上服務(wù)的供應(yīng)商為了因應(yīng)龐大的客戶流量,會(huì)選擇部署CDN
    的頭像 發(fā)表于 08-30 13:03 ?834次閱讀
    使用<b class='flag-5'>CDN</b>安全嗎?<b class='flag-5'>CDN</b>如何達(dá)到基本防護(hù)功能呢?

    華納云:如何理解CDN

    內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)是一種網(wǎng)絡(luò)架構(gòu),旨在提高用戶對(duì)網(wǎng)站、應(yīng)用程序或其他互聯(lián)網(wǎng)內(nèi)容的訪問速度和性能。CDN 的主要原理是通過在全球范圍內(nèi)部署分布式服務(wù)器,將內(nèi)容緩存并提供給用戶距離Z近的服務(wù)器,從而
    的頭像 發(fā)表于 08-23 15:20 ?505次閱讀

    CDN網(wǎng)站加速

    CDN網(wǎng)站加速是什么呢? CDN,英文全名為Content?Delivery?Network(也有人稱“Content?Distribution?Network”)的縮寫,即是我們中文所指的內(nèi)容傳遞
    的頭像 發(fā)表于 08-08 15:02 ?646次閱讀
    <b class='flag-5'>CDN</b>網(wǎng)站加速

    什么情況下的網(wǎng)站要使用CDN加速呢?

    速度慢等問題。 原理就是在客戶端和源站中多加一層節(jié)點(diǎn),用以加快用戶的訪問速度,讓用戶和離自己最近的節(jié)點(diǎn)層做交互。 CDN網(wǎng)站加速的工作流程 當(dāng)用戶訪問已經(jīng)加入CDN服務(wù)的網(wǎng)站時(shí),首先通過DNS重定向技術(shù)確定最接近用戶的最佳
    的頭像 發(fā)表于 07-26 16:29 ?508次閱讀

    CDN是什么?了解用CDN服務(wù)連到網(wǎng)站加速的原理與優(yōu)勢(shì)

    為什么通過CDN能讓網(wǎng)站變得更加快速呢?有想過為什么我們?cè)谥袊褂镁W(wǎng)絡(luò),卻能夠快速、穩(wěn)定的連上海外的網(wǎng)站嗎?今天就來與各位聊聊CDN加速的原理,看看CDN是如何幫助網(wǎng)站加速,而除了加速之外
    的頭像 發(fā)表于 07-21 10:54 ?1289次閱讀