什么是CDN?有什么用途?如何使用?
Admin 2023-05-23 群英技術(shù)資訊 1550 次瀏覽
今天就跟大家聊聊有關(guān)“什么是CDN?有什么用途?如何使用?”的內(nèi)容,可能很多人都不太了解,為了讓大家認(rèn)識(shí)和更進(jìn)一步的了解,小編給大家總結(jié)了以下內(nèi)容,希望這篇“什么是CDN?有什么用途?如何使用?”文章能對(duì)大家有幫助。
CDN-內(nèi)容推送網(wǎng)絡(luò)
前段時(shí)間介紹了瀏覽器緩存機(jī)制,通過瀏覽器緩存一方面可以改善用戶的體驗(yàn),而不用漫長(zhǎng)地等待從服務(wù)器下載資源;另一方面減輕服務(wù)器壓力、節(jié)省流量。CDN是另一種可以大幅度優(yōu)化用戶體驗(yàn),且減輕服務(wù)器壓力的技術(shù)。下面就自己了解的CDN技術(shù)分享下。
CDN的實(shí)現(xiàn)是一組技術(shù)的組合,每個(gè)技術(shù)都可以單獨(dú)成文詳細(xì)討論,這里就不深入每個(gè)技術(shù)。內(nèi)容目錄:
1. 什么是CDN? 1
2. CDN技術(shù)原理... 1
2.1. 分布式存儲(chǔ)... 1
2.2. 內(nèi)容管理... 2
2.3. 負(fù)載均衡... 2
2.4. 網(wǎng)絡(luò)請(qǐng)求的重定向... 2
3. CDN資源訪問流程... 3
4. 關(guān)于CDN的疑問... 3
4.1. 使用CDN后,如何獲取客戶端真實(shí)IP?... 3
4.2. 采用CDN服務(wù)以后如何保證內(nèi)容的更新和同步?... 4
CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是通過在現(xiàn)有的Internet中增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)"邊緣"(邊緣服務(wù)器),使用戶可以就近取得所需的內(nèi)容,解決Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點(diǎn)分布不均等原因所造成的用戶訪問網(wǎng)站響應(yīng)速度慢的問題。
CDN技術(shù)是在美國(guó)首先興起并迅速發(fā)展起來的一種解決互聯(lián)網(wǎng)性能不佳問題的有效手段。其基本思路就是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母?、更穩(wěn)。通過在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶的距離和響應(yīng)時(shí)間等綜合信息將用戶的請(qǐng)求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點(diǎn)上。
CDN網(wǎng)絡(luò)架構(gòu)主要由兩大部分,分為中心和邊緣兩部分,中心指CDN網(wǎng)管中心和DNS重定向解析中心,負(fù)責(zé)全局負(fù)載均衡,設(shè)備系統(tǒng)安裝在管理中心機(jī)房;邊緣主要指異地節(jié)點(diǎn),CDN分發(fā)的載體,主要由Cache和負(fù)載均衡器等組成。
實(shí)際上,CDN是一種新型的網(wǎng)絡(luò)構(gòu)建方式,它是為能在傳統(tǒng)的IP網(wǎng)發(fā)布寬帶豐富媒體而特別優(yōu)化的網(wǎng)絡(luò)覆蓋層;而從廣義的角度,CDN代表了一種基于質(zhì)量與秩序的網(wǎng)絡(luò)服務(wù)模式。簡(jiǎn)單地說,CDN是一個(gè)經(jīng)策略性部署的整體系統(tǒng),包括分布式存儲(chǔ)、負(fù)載均衡、網(wǎng)絡(luò)請(qǐng)求的重定向和內(nèi)容管理4個(gè)要件。
這點(diǎn)顯而易見,CDN網(wǎng)絡(luò)將存儲(chǔ)資源分布到各個(gè)地理位置、各個(gè)網(wǎng)段。存儲(chǔ)系統(tǒng)作為CDN系統(tǒng)密不可分的一部分,將CDN分發(fā)的文件和數(shù)據(jù)庫(kù)表記錄內(nèi)容存儲(chǔ)起來,提供持續(xù)服務(wù)。存儲(chǔ)系統(tǒng)采用三級(jí)存儲(chǔ)架構(gòu),包括核心存儲(chǔ)、CDN服務(wù)節(jié)點(diǎn)分布式緩存和終端本地緩存。任意一個(gè)點(diǎn)的存儲(chǔ)崩潰或失效,并不影響系統(tǒng)服務(wù)的可用性。
圖:當(dāng)下云摘CDN的存儲(chǔ)示意圖(其它CDN也是類似)
如CDN系統(tǒng)在5大運(yùn)營(yíng)商(中國(guó)電信、中國(guó)網(wǎng)通、中國(guó)鐵通、中國(guó)移動(dòng)、中國(guó)聯(lián)通)以及2大專有網(wǎng)絡(luò)(中國(guó)教育和科研計(jì)算機(jī)網(wǎng)、中國(guó)科技網(wǎng))都布有CDN節(jié)點(diǎn)。這樣就消除了不同運(yùn)營(yíng)商之間互聯(lián)的瓶頸造成的影響,實(shí)現(xiàn)了跨運(yùn)營(yíng)商的網(wǎng)絡(luò)加速,保證不同網(wǎng)絡(luò)中的用戶都能得到良好的訪問質(zhì)量。
內(nèi)容管理和全局的網(wǎng)絡(luò)流量管理(Traffic Management)是CDN的核心所在。通過用戶就近性和服務(wù)器負(fù)載的判斷,CDN確保內(nèi)容以一種極為高效的方式為用戶的請(qǐng)求提供服務(wù)。總的來說,內(nèi)容服務(wù)基于緩存服務(wù)器,也稱作代理緩存(Surrogate),它位于網(wǎng)絡(luò)的邊緣,距用戶僅有"一跳"(Single Hop)之遙。同時(shí),代理緩存是內(nèi)容提供商源服務(wù)器(通常位于CDN服務(wù)提供商的數(shù)據(jù)中心)的一個(gè)透明鏡像。這樣的架構(gòu)使得CDN服務(wù)提供商能夠代表他們客戶,即內(nèi)容供應(yīng)商,向最終用戶提供盡可能好的體驗(yàn),而這些用戶是不能容忍請(qǐng)求響應(yīng)時(shí)間有任何延遲的。據(jù)統(tǒng)計(jì),采用CDN技術(shù),能處理整個(gè)網(wǎng)站頁(yè)面的 70%~95%的內(nèi)容訪問量,減輕服務(wù)器的壓力,提升了網(wǎng)站的性能和可擴(kuò)展性。
CDN負(fù)載均衡系統(tǒng)實(shí)現(xiàn)CDN的內(nèi)容路由功能。它的作用是將用戶的請(qǐng)求導(dǎo)向整個(gè)CDN網(wǎng)絡(luò)中的最佳節(jié)點(diǎn)。最佳節(jié)點(diǎn)的選定可以根據(jù)多種策略,例如距離最近、節(jié)點(diǎn)負(fù)載最輕等。負(fù)載均衡系統(tǒng)是整個(gè)CDN的核心,負(fù)載均衡的準(zhǔn)確性和效率直接決定了整個(gè)CDN的效率和性能。通常負(fù)載均衡可以分為兩個(gè)層次:全局負(fù)載均衡(GSLB)和本地負(fù)載均衡(SLB)。
l 全局負(fù)載均衡(GSLB)主要的目的是在整個(gè)網(wǎng)絡(luò)范圍內(nèi)將用戶的請(qǐng)求定向到最近的節(jié)點(diǎn)(或者區(qū)域)。因此,就近性判斷是全局負(fù)載均衡的主要功能。
l 本地負(fù)載均衡一般局限于一定的區(qū)域范圍內(nèi),其目標(biāo)是在特定的區(qū)域范圍內(nèi)尋找一臺(tái)最適合的節(jié)點(diǎn)提供服務(wù),因此,CDN節(jié)點(diǎn)的健康性、負(fù)載情況、支持的媒體格式等運(yùn)行狀態(tài)是本地負(fù)載均衡進(jìn)行決策的主要依據(jù)。
負(fù)載均衡可以通過多種方法實(shí)現(xiàn),主要的方法包括DNS、應(yīng)用層重定向、傳輸層重定向等等。對(duì)于全局負(fù)載均衡而言,為了執(zhí)行就近性判斷,通常可以采用兩種方式,一種是靜態(tài)的配置,例如根據(jù)靜態(tài)的IP地址配置表進(jìn)行IP地址到CDN節(jié)點(diǎn)的映射。另一種方式是動(dòng)態(tài)的檢測(cè),例如實(shí)時(shí)地讓CDN節(jié)點(diǎn)探測(cè)到目標(biāo)IP的距離(可以采用RRT,Hops作為度量單位),然后比較探測(cè)結(jié)果進(jìn)行負(fù)載均衡。當(dāng)然,靜態(tài)和動(dòng)態(tài)的方式也可以綜合起來使用。
對(duì)于本地負(fù)載均衡而言,為了執(zhí)行有效的決策,需要實(shí)時(shí)地獲取Cache設(shè)備的運(yùn)行狀態(tài)。獲取的方法一般有兩種,一種是主動(dòng)探測(cè),一種是協(xié)議交互。主動(dòng)探測(cè)針對(duì)SLB設(shè)備和Cache設(shè)備沒有協(xié)議交互接口的情況,通過ping等命令主動(dòng)發(fā)起探測(cè),根據(jù)返回結(jié)果分析狀態(tài)。另一種是協(xié)議交互,即SLB和 Cache根據(jù)事先定義好的協(xié)議實(shí)時(shí)交換運(yùn)行狀態(tài)信息,以便進(jìn)行負(fù)載均衡。比較而言,協(xié)議交互比探測(cè)方式要準(zhǔn)確可靠,但是目前尚沒有標(biāo)準(zhǔn)的協(xié)議,各廠家的實(shí)現(xiàn)一般僅是私有協(xié)議,互通比較困難。
當(dāng)用戶訪問了使用CDN服務(wù)的資源時(shí),DNS域名服務(wù)器通過CNAME方式將最終域名請(qǐng)求重定向到CDN系統(tǒng)中的智能DNS負(fù)載均衡系統(tǒng)。智能DNS負(fù)載均衡系統(tǒng)通過一組預(yù)先定義好的策略(如內(nèi)容類型、地理區(qū)域、網(wǎng)絡(luò)負(fù)載狀況等),將當(dāng)時(shí)能夠最快響應(yīng)用戶的節(jié)點(diǎn)地址提供給用戶,使用戶可以得到快速的服務(wù)。
同時(shí),它還與分布在不同地點(diǎn)的所有CDN節(jié)點(diǎn)保持通信,搜集各節(jié)點(diǎn)的健康狀態(tài),確保不將用戶的請(qǐng)求分配到任何一個(gè)已經(jīng)不可用的節(jié)點(diǎn)上。
使用了CDN服務(wù)后,用戶的訪問流程如下圖所示:
圖:CDN用戶訪問流程圖(摘自:思必達(dá)CDN)
同時(shí),它還與分布在不同地點(diǎn)的所有CDN節(jié)點(diǎn)保持通信,搜集各節(jié)點(diǎn)的健康狀態(tài),確保不將用戶的請(qǐng)求分配到任何一個(gè)已經(jīng)不可用的節(jié)點(diǎn)上。
使用CDN服務(wù)之后獲得原始IP地址發(fā)生變化。因?yàn)樵捶?wù)器的請(qǐng)求都來自CDN節(jié)點(diǎn),不知道客戶原始IP。一般來說,CDN節(jié)點(diǎn)會(huì)以某種方式將源客戶端的IP傳遞給源服務(wù)器,如有的網(wǎng)宿CDN,它是將源IP添加到了一個(gè)叫“Cdn-Src-Ip”的Http Header里,以C#語(yǔ)言為例,獲得客戶端真實(shí)IP的方式如下:(根據(jù)不同的CDN提供商可能會(huì)有所不同)。
|
C#代碼 |
|
String srcIp = Request.Headers["Cdn-Src-Ip"]; if(srcIp == null) { srcIp = Request.UserHostAddress; } |
或者從HTTP請(qǐng)求Header中“HTTP_X_FORWARDED_FOR”字段獲得。HTTP_X_FORWARDED_FOR的值是:"原始真實(shí)IP,1層代理IP,2層代理IP,....."。判斷HTTP_X_FORWARDED_FOR是否為空(沒有使用CDN或代理這個(gè)字段為空),不為空把這個(gè)作為IP地址。這是一個(gè)簡(jiǎn)單有效的方法。至于很復(fù)雜的情況就不處理了,比如多層代理。
在CDN服務(wù)中,CDN節(jié)點(diǎn)中的內(nèi)容與源網(wǎng)站內(nèi)容的同步主要是靠設(shè)置刷新時(shí)間策略來實(shí)現(xiàn)的。針對(duì)不同的內(nèi)容設(shè)置不同的刷新時(shí)間,對(duì)于更新頻率比較低的內(nèi)容可以設(shè)置較長(zhǎng)的刷新時(shí)間以減輕回源站的訪問壓力;對(duì)頻繁更新的內(nèi)容,我們可以設(shè)置成10分鐘或更短,以此來保證內(nèi)容的同步。設(shè)置刷新時(shí)間可以按目錄來設(shè)置,也可以按具體URL來設(shè)置,或按某個(gè)關(guān)鍵字段來設(shè)置,非常靈活。
現(xiàn)在大家對(duì)于什么是CDN?有什么用途?如何使用?的內(nèi)容應(yīng)該都有一定的認(rèn)識(shí)了吧,希望這篇能對(duì)大家有所幫助。最后,想要了解更多,歡迎關(guān)注群英網(wǎng)絡(luò),群英網(wǎng)絡(luò)將為大家推送更多相關(guān)的文章。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:[email protected]進(jìn)行舉報(bào),并提供相關(guān)證據(jù),查實(shí)之后,將立刻刪除涉嫌侵權(quán)內(nèi)容。
猜你喜歡
近些年,網(wǎng)絡(luò)攻擊的事件越來越多,隨著互聯(lián)網(wǎng)競(jìng)爭(zhēng)的激烈,很多網(wǎng)站不僅要面臨黑客的攻擊,還可能會(huì)遭受競(jìng)爭(zhēng)對(duì)手的惡意攻擊。因此,為了確保網(wǎng)站的穩(wěn)定發(fā)展,做好網(wǎng)站的安全維護(hù)是至關(guān)重要的。那么究竟我們的網(wǎng)站可能面臨的安全問題有什么呢?該如何做好安全維護(hù)?
現(xiàn)在很多國(guó)內(nèi)的企業(yè)都有開展業(yè)務(wù),因此租用海外服務(wù)器的用戶也越來越多,其中服務(wù)器安全的問題始終是各位站長(zhǎng)最關(guān)心的問題。那么海外服務(wù)器被攻擊會(huì)有什么表現(xiàn)呢?常見的攻擊有哪些,我們?cè)撊绾螒?yīng)對(duì)黑客攻擊?
web前端性能優(yōu)化之CDN
一般用戶很難發(fā)現(xiàn)系統(tǒng)中隱藏賬戶的存在,那么該怎么辦呢?其實(shí)我們可以通過以下幾點(diǎn)來解決這個(gè)問題,接下來教你如何把隱藏賬戶徹底請(qǐng)出系統(tǒng),感興趣的朋友不要錯(cuò)過
網(wǎng)絡(luò)攻擊的種類有幾種,會(huì)有什么影響?近些年,網(wǎng)絡(luò)攻擊事件常常發(fā)生,且網(wǎng)絡(luò)攻擊類型也越來越多,讓人防不勝防,因此做好相應(yīng)的防御至關(guān)重要。了解網(wǎng)絡(luò)攻擊對(duì)我們做好防御是有一定的幫助的,而對(duì)網(wǎng)絡(luò)攻擊的種類我們呢個(gè)簡(jiǎn)單的分為主動(dòng)攻擊和被動(dòng)攻擊,那么它們是什么意思呢?下面我們來具體的了解看看。
推薦內(nèi)容
相關(guān)標(biāo)簽
成為群英會(huì)員,開啟智能安全云計(jì)算之旅
立即注冊(cè)關(guān)注或聯(lián)系群英網(wǎng)絡(luò)
7x24小時(shí)售前:400-678-4567
7x24小時(shí)售后:0668-2555666
24小時(shí)QQ客服
群英微信公眾號(hào)
CNNIC域名投訴舉報(bào)處理平臺(tái)
服務(wù)電話:010-58813000
服務(wù)郵箱:[email protected]
投訴與建議:0668-2555555
Copyright ? QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版權(quán)所有
增值電信經(jīng)營(yíng)許可證 : B1.B2-20140078 ICP核準(zhǔn)(ICP備案)粵ICP備09006778號(hào) 域名注冊(cè)商資質(zhì) 粵 D3.1-20240008