- 論壇徽章:
- 0
|
1、前言
Internet的高速發(fā)展,給人們的工作和生活帶來(lái)了極大的便利,對(duì)Internet的服務(wù)品質(zhì)和訪問(wèn)速度要求越來(lái)越高,雖然帶寬不斷增加,用戶數(shù)量也在不斷增加,受Web服務(wù)器的負(fù)荷和傳輸距離等因數(shù)的影響,響應(yīng)速度慢還是經(jīng)常抱怨和困擾。解決方案就是在網(wǎng)絡(luò)傳輸上利用緩存技術(shù)使得Web服務(wù)數(shù)據(jù)流能就近訪問(wèn),是優(yōu)化網(wǎng)絡(luò)數(shù)據(jù)傳輸非常有效的技術(shù),從而獲得高速的體驗(yàn)和品質(zhì)保證。
網(wǎng)絡(luò)緩存技術(shù),其目的就是減少網(wǎng)絡(luò)中冗余數(shù)據(jù)的重復(fù)傳輸,使之最小化,將廣域傳輸轉(zhuǎn)為本地或就近訪問(wèn)。互聯(lián)網(wǎng)上傳遞的內(nèi)容,大部分為重復(fù)的Web/FTP數(shù)據(jù),Cache服務(wù)器及應(yīng)用Caching技術(shù)的網(wǎng)絡(luò)設(shè)備,可大大優(yōu)化數(shù)據(jù)鏈路性能,消除數(shù)據(jù)峰值訪問(wèn)造成的結(jié)點(diǎn)設(shè)備阻塞。Cache服務(wù)器具有緩存功能,所以大部分網(wǎng)頁(yè)對(duì)象(Web page object),如html, htm, php等頁(yè)面文件,gif,tif,png,bmp等圖片文件,以及其他格式的文件,在有效期(TTL)內(nèi),對(duì)于重復(fù)的訪問(wèn),不必從原始網(wǎng)站重新傳送文件實(shí)體, 只需通過(guò)簡(jiǎn)單的認(rèn)證(Freshness Validation)- 傳送幾十字節(jié)的Header,即可將本地的副本直接傳送給訪問(wèn)者。由于緩存服務(wù)器通常部署在靠近用戶端,所以能獲得近似局域網(wǎng)的響應(yīng)速度,并有效減少?gòu)V域帶寬的消耗。據(jù)統(tǒng)計(jì),Internet上超過(guò)80%的用戶重復(fù)訪問(wèn)20%的信息資源,給緩存技術(shù)的應(yīng)用提供了先決的條件。緩存服務(wù)器的體系結(jié)構(gòu)與Web服務(wù)器不同,緩存服務(wù)器能比Web服務(wù)器獲得更高的性能,緩存服務(wù)器不僅能提高響應(yīng)速度,節(jié)約帶寬,對(duì)于加速Web服務(wù)器,有效減輕源服務(wù)器的負(fù)荷是非常有效的。
高速緩存服務(wù)器(Cache Server)是軟硬件高度集成的專業(yè)功能服務(wù)器,主要做高速緩存加速服務(wù),一般部署在網(wǎng)絡(luò)邊緣。根據(jù)加速對(duì)象不同,分為客戶端加速和服務(wù)器加速,客戶端加速Cache部署在網(wǎng)絡(luò)出口處,把常訪問(wèn)的內(nèi)容緩存在本地,提高響應(yīng)速度和節(jié)約帶寬;服務(wù)器加速,Cache部署在服務(wù)器前端,作為Web服務(wù)器的前置機(jī),提高Web服務(wù)器的性能,加速訪問(wèn)速度。如果多臺(tái)Cache加速服務(wù)器且分布在不同地域,需要通過(guò)有效地機(jī)制管理Cache網(wǎng)絡(luò),引導(dǎo)用戶就近訪問(wèn),全局負(fù)載均衡流量,這就是CDN內(nèi)容傳輸網(wǎng)絡(luò)的基本思想。
2.什么是CDN?
CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是通過(guò)在現(xiàn)有的Internet中增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)"邊緣",使用戶可以就近取得所需的內(nèi)容,解決Internet網(wǎng)絡(luò)擁塞狀況,提高用戶訪問(wèn)網(wǎng)站的響應(yīng)速度。從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問(wèn)量大、網(wǎng)點(diǎn)分布不均等原因,解決用戶訪問(wèn)網(wǎng)站的響應(yīng)速度慢的根本原因。
狹義地講,內(nèi)容分發(fā)布網(wǎng)絡(luò)(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)單地說(shuō),內(nèi)容發(fā)布網(wǎng)(CDN)是一個(gè)經(jīng)策略性部署的整體系統(tǒng),包括分布式存儲(chǔ)、負(fù)載均衡、網(wǎng)絡(luò)請(qǐng)求的重定向和內(nèi)容管理4個(gè)要件,而內(nèi)容管理和全局的網(wǎng)絡(luò)流量管理(Traffic Management)是CDN的核心所在。通過(guò)用戶就近性和服務(wù)器負(fù)載的判斷,CDN確保內(nèi)容以一種極為高效的方式為用戶的請(qǐng)求提供服務(wù)?偟膩(lái)說(shuō),內(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èn)量,減輕服務(wù)器的壓力,提升了網(wǎng)站的性能和可擴(kuò)展性。
與目前現(xiàn)有的內(nèi)容發(fā)布模式相比較,CDN強(qiáng)調(diào)了網(wǎng)絡(luò)在內(nèi)容發(fā)布中的重要性。通過(guò)引入主動(dòng)的內(nèi)容管理層的和全局負(fù)載均衡,CDN從根本上區(qū)別于傳統(tǒng)的內(nèi)容發(fā)布模式。在傳統(tǒng)的內(nèi)容發(fā)布模式中,內(nèi)容的發(fā)布由ICP的應(yīng)用服務(wù)器完成,而網(wǎng)絡(luò)只表現(xiàn)為一個(gè)透明的數(shù)據(jù)傳輸通道,這種透明性表現(xiàn)在網(wǎng)絡(luò)的質(zhì)量保證僅僅停留在數(shù)據(jù)包的層面,而不能根據(jù)內(nèi)容對(duì)象的不同區(qū)分服務(wù)質(zhì)量。此外,由于IP網(wǎng)的"盡力而為"的特性使得其質(zhì)量保證是依靠在用戶和應(yīng)用服務(wù)器之間端到端地提供充分的、遠(yuǎn)大于實(shí)際所需的帶寬通量來(lái)實(shí)現(xiàn)的。在這樣的內(nèi)容發(fā)布模式下,不僅大量寶貴的骨干帶寬被占用,同時(shí)ICP的應(yīng)用服務(wù)器的負(fù)載也變得非常重,而且不可預(yù)計(jì)。當(dāng)發(fā)生一些熱點(diǎn)事件和出現(xiàn)浪涌流量時(shí),會(huì)產(chǎn)生局部熱點(diǎn)效應(yīng),從而使應(yīng)用服務(wù)器過(guò)載退出服務(wù)。這種基于中心的應(yīng)用服務(wù)器的內(nèi)容發(fā)布模式的另外一個(gè)缺陷在于個(gè)性化服務(wù)的缺失和對(duì)寬帶服務(wù)價(jià)值鏈的扭曲,內(nèi)容提供商承擔(dān)了他們不該干也干不好的內(nèi)容發(fā)布服務(wù)。
縱觀整個(gè)寬帶服務(wù)的價(jià)值鏈,內(nèi)容提供商和用戶位于整個(gè)價(jià)值鏈的兩端,中間依靠網(wǎng)絡(luò)服務(wù)提供商將其串接起來(lái)。隨著互聯(lián)網(wǎng)工業(yè)的成熟和商業(yè)模式的變革,在這條價(jià)值鏈上的角色越來(lái)越多也越來(lái)越細(xì)分。比如內(nèi)容/應(yīng)用的運(yùn)營(yíng)商、托管服務(wù)提供商、骨干網(wǎng)絡(luò)服務(wù)提供商、接入服務(wù)提供商等等。在這一條價(jià)值鏈上的每一個(gè)角色都要分工合作、各司其職才能為客戶提供良好的服務(wù),從而帶來(lái)多贏的局面。從內(nèi)容與網(wǎng)絡(luò)的結(jié)合模式上看,內(nèi)容的發(fā)布已經(jīng)走過(guò)了ICP的內(nèi)容(應(yīng)用)服務(wù)器和IDC這兩個(gè)階段。IDC的熱潮也催生了托管服務(wù)提供商這一角色。但是,IDC并不能解決內(nèi)容的有效發(fā)布問(wèn)題。內(nèi)容位于網(wǎng)絡(luò)的中心并不能解決骨干帶寬的占用和建立IP網(wǎng)絡(luò)上的流量秩序。因此將內(nèi)容推到網(wǎng)絡(luò)的邊緣,為用戶提供就近性的邊緣服務(wù),從而保證服務(wù)的質(zhì)量和整個(gè)網(wǎng)絡(luò)上的訪問(wèn)秩序就成了一種顯而易見(jiàn)的選擇。而這就是內(nèi)容發(fā)布網(wǎng)(CDN)服務(wù)模式。CDN的建立解決了困擾內(nèi)容運(yùn)營(yíng)商的內(nèi)容"集中與分散"的兩難選擇。無(wú)疑對(duì)于構(gòu)建良好的互聯(lián)網(wǎng)價(jià)值鏈?zhǔn)怯袃r(jià)值的,也是不可或缺的。
3.CDN新應(yīng)用和客戶
目前的CDN服務(wù)主要應(yīng)用于證券、金融保險(xiǎn)、ISP、ICP、網(wǎng)上交易、門戶網(wǎng)站、大中型公司、網(wǎng)絡(luò)教學(xué)等領(lǐng)域。另外在行業(yè)專網(wǎng)、互聯(lián)網(wǎng)中都可以用到,甚至可以對(duì)局域網(wǎng)進(jìn)行網(wǎng)絡(luò)優(yōu)化。利用CDN,這些網(wǎng)站無(wú)需投資昂貴的各類服務(wù)器、設(shè)立分站點(diǎn),特別是流媒體信息的廣泛應(yīng)用、遠(yuǎn)程教學(xué)課件等消耗帶寬資源多的媒體信息,應(yīng)用CDN網(wǎng)絡(luò),把內(nèi)容復(fù)制到網(wǎng)絡(luò)的最邊緣,使內(nèi)容請(qǐng)求點(diǎn)和交付點(diǎn)之間的距離縮至最小,從而促進(jìn)Web站點(diǎn)性能的提高,具有重要的意義。CDN網(wǎng)絡(luò)的建設(shè)主要有企業(yè)建設(shè)的CDN網(wǎng)絡(luò),為企業(yè)服務(wù);IDC的CDN網(wǎng)絡(luò),主要服務(wù)于IDC和增值服務(wù);網(wǎng)絡(luò)運(yùn)營(yíng)上主建的CDN網(wǎng)絡(luò),主要提供內(nèi)容推送服務(wù);CDN網(wǎng)絡(luò)服務(wù)商,專門建設(shè)的CDN用于做服務(wù),用戶通過(guò)與CDN機(jī)構(gòu)進(jìn)行合作,CDN負(fù)責(zé)信息傳遞工作,保證信息正常傳輸,維護(hù)傳送網(wǎng)絡(luò),而網(wǎng)站只需要內(nèi)容維護(hù),不再需要考慮流量問(wèn)題。
CDN能夠?yàn)榫W(wǎng)絡(luò)的快速、安全、穩(wěn)定、可擴(kuò)展等方面提供保障。
IDC建立CDN網(wǎng)絡(luò),IDC運(yùn)營(yíng)商一般需要有分部各地的多個(gè)IDC中心,服務(wù)對(duì)象是托管在IDC中心的客戶,利用現(xiàn)有的網(wǎng)絡(luò)資源,投資較少,容易建設(shè)。例如某IDC全國(guó)有10個(gè)機(jī)房,加入IDC的CDN網(wǎng)絡(luò),托管在一個(gè)節(jié)點(diǎn)的Web服務(wù)器,相當(dāng)于有了10個(gè)鏡像服務(wù)器,就近供客戶訪問(wèn)。寬帶城域網(wǎng),域內(nèi)網(wǎng)絡(luò)速度很快,出城帶寬一般就會(huì)瓶頸,為了體現(xiàn)城域網(wǎng)的高速體驗(yàn),解決方案就是將Internet網(wǎng)上內(nèi)容高速緩存到本地,將Cache部署在城域網(wǎng)各POP點(diǎn)上,這樣形成高效有序的網(wǎng)絡(luò),用戶僅一跳就能訪問(wèn)大部分的內(nèi)容,這也是一種加速所有網(wǎng)站CDN的應(yīng)用。
4.CDN 的工作原理
在描述CDN的實(shí)現(xiàn)原理,讓我們先看傳統(tǒng)的未加緩存服務(wù)的訪問(wèn)過(guò)程,以便了解CDN緩存訪問(wèn)方式與未加緩存訪問(wèn)方式的差別:
由上圖可見(jiàn),用戶訪問(wèn)未使用CDN緩存網(wǎng)站的過(guò)程為:
1)、用戶向?yàn)g覽器提供要訪問(wèn)的域名;
2)、瀏覽器調(diào)用域名解析函數(shù)庫(kù)對(duì)域名進(jìn)行解析,以得到此域名對(duì)應(yīng)的IP地址;
3)、瀏覽器使用所得到的IP地址,域名的服務(wù)主機(jī)發(fā)出數(shù)據(jù)訪問(wèn)請(qǐng)求;
4)、瀏覽器根據(jù)域名主機(jī)返回的數(shù)據(jù)顯示網(wǎng)頁(yè)的內(nèi)容。
通過(guò)以上四個(gè)步驟,瀏覽器完成從用戶處接收用戶要訪問(wèn)的域名到從域名服務(wù)主機(jī)處獲取數(shù)據(jù)的整個(gè)過(guò)程。CDN網(wǎng)絡(luò)是在用戶和服務(wù)器之間增加Cache層,如何將用戶的請(qǐng)求引導(dǎo)到Cache上獲得源服務(wù)器的數(shù)據(jù),主要是通過(guò)接管DNS實(shí)現(xiàn),下面讓我們看看訪問(wèn)使用CDN緩存后的網(wǎng)站的過(guò)程:
通過(guò)上圖,我們可以了解到,使用了CDN緩存后的網(wǎng)站的訪問(wèn)過(guò)程變?yōu)椋?br />
1)、用戶向?yàn)g覽器提供要訪問(wèn)的域名;
2)、瀏覽器調(diào)用域名解析庫(kù)對(duì)域名進(jìn)行解析,由于CDN對(duì)域名解析過(guò)程進(jìn)行了調(diào)整,所以解析函數(shù)庫(kù)一般得到的是該域名對(duì)應(yīng)的CNAME記錄,為了得到實(shí)際IP地址,瀏覽器需要再次對(duì)獲得的CNAME域名進(jìn)行解析以得到實(shí)際的IP地址;在此過(guò)程中,使用的全局負(fù)載均衡DNS解析,如根據(jù)地理位置信息解析對(duì)應(yīng)的IP地址,使得用戶能就近訪問(wèn)。
3)、此次解析得到CDN緩存服務(wù)器的IP地址,瀏覽器在得到實(shí)際的IP地址以后,向緩存服務(wù)器發(fā)出訪問(wèn)請(qǐng)求;
4)、緩存服務(wù)器根據(jù)瀏覽器提供的要訪問(wèn)的域名,通過(guò)Cache內(nèi)部專用DNS解析得到此域名的實(shí)際IP地址,再由緩存服務(wù)器向此實(shí)際IP地址提交訪問(wèn)請(qǐng)求;
5)、緩存服務(wù)器從實(shí)際IP地址得得到內(nèi)容以后,一方面在本地進(jìn)行保存,以備以后使用,二方面把獲取的數(shù)據(jù)返回給客戶端,完成數(shù)據(jù)服務(wù)過(guò)程;
6)、客戶端得到由緩存服務(wù)器返回的數(shù)據(jù)以后顯示出來(lái)并完成整個(gè)瀏覽的數(shù)據(jù)請(qǐng)求過(guò)程。
通過(guò)以上的分析我們可以得到,為了實(shí)現(xiàn)既要對(duì)普通用戶透明(即加入緩存以后用戶客戶端無(wú)需進(jìn)行任何設(shè)置,直接使用被加速網(wǎng)站原有的域名即可訪問(wèn)),又要在為指定的網(wǎng)站提供加速服務(wù)的同時(shí)降低對(duì)ICP的影響,只要修改整個(gè)訪問(wèn)過(guò)程中的域名解析部分,以實(shí)現(xiàn)透明的加速服務(wù),下面是CDN網(wǎng)絡(luò)實(shí)現(xiàn)的具體操作過(guò)程。
1)、作為ICP,只需要把域名解釋權(quán)交給CDN運(yùn)營(yíng)商,其他方面不需要進(jìn)行任何的修改;操作時(shí),ICP修改自己域名的解析記錄,一般用cname方式指向CDN網(wǎng)絡(luò)Cache服務(wù)器的地址。
2)、作為CDN運(yùn)營(yíng)商,首先需要為ICP的域名提供公開的解析,為了實(shí)現(xiàn)sortlist,一般是把ICP的域名解釋結(jié)果指向一個(gè)CNAME記錄;
3)、當(dāng)需要進(jìn)行sorlist時(shí),CDN運(yùn)營(yíng)商可以利用DNS對(duì)CNAME指向的域名解析過(guò)程進(jìn)行特殊處理,使DNS服務(wù)器在接收到客戶端請(qǐng)求時(shí)可以根據(jù)客戶端的IP地址,返回相同域名的不同IP地址;
4)、由于從cname獲得的IP地址,并且?guī)в衕ostname信息,請(qǐng)求到達(dá)Cache之后,Cache必須知道源服務(wù)器的IP地址,所以在CDN運(yùn)營(yíng)商內(nèi)部維護(hù)一個(gè)內(nèi)部DNS服務(wù)器,用于解釋用戶所訪問(wèn)的域名的真實(shí)IP地址;
5)、在維護(hù)內(nèi)部DNS服務(wù)器時(shí),還需要維護(hù)一臺(tái)授權(quán)服務(wù)器,控制哪些域名可以進(jìn)行緩存,而哪些又不進(jìn)行緩存,以免發(fā)生開放代理的情況。
5.CDN的技術(shù)手段
實(shí)現(xiàn)CDN的主要技術(shù)手段是高速緩存、鏡像服務(wù)器?晒ぷ饔贒NS解析或HTTP重定向兩種方式,通過(guò)Cache服務(wù)器,或異地的鏡像站點(diǎn) 完成內(nèi)容的傳送與同步更新。DNS方式用戶位置判斷準(zhǔn)確率大于85%,HTTP方式準(zhǔn)確率為99%以上;一般情況,各Cache服務(wù)器群的用戶訪問(wèn)流入數(shù)據(jù)量與Cache服務(wù)器到原始網(wǎng)站取內(nèi)容的數(shù)據(jù)量之比在2:1到3:1之間,即分擔(dān)50%到70%的到原始網(wǎng)站重復(fù)訪問(wèn)數(shù)據(jù)量(主要是圖片,流媒體文件等內(nèi)容);對(duì)于鏡像,除數(shù)據(jù)同步的流量,其余均在本地完成,不訪問(wèn)原始服務(wù)器。
鏡像站點(diǎn)(Mirror Site)服務(wù)器是我們經(jīng)?梢钥吹降,它讓內(nèi)容直截了當(dāng)?shù)剡M(jìn)行分布,適用于靜態(tài)和準(zhǔn)動(dòng)態(tài)的數(shù)據(jù)同步。但是購(gòu)買和維護(hù)新服務(wù)器的費(fèi)用較高,另外還必須在各個(gè)地區(qū)設(shè)置鏡像服務(wù)器,配備專業(yè)技術(shù)人員進(jìn)行管理與維護(hù)。大型網(wǎng)站在隨時(shí)更新各地服務(wù)器的同時(shí),對(duì)帶寬的需求也會(huì)顯著增加,因此一般的互聯(lián)網(wǎng)公司不會(huì)建立太多的鏡像服務(wù)器。
高速緩存手段的成本較低,適用于靜態(tài)內(nèi)容。Internet的統(tǒng)計(jì)表明,超過(guò)80%的用戶經(jīng)常訪問(wèn)的是20%的網(wǎng)站的內(nèi)容,在這個(gè)規(guī)律下,緩存服務(wù)器可以處理大部分客戶的靜態(tài)請(qǐng)求,而原始的WWW服務(wù)器只需處理約20%左右的非緩存請(qǐng)求和動(dòng)態(tài)請(qǐng)求,于是大大加快了客戶請(qǐng)求的響應(yīng)時(shí)間,并降低了原始WWW服務(wù)器的負(fù)載。根據(jù)美國(guó)IDC公司的調(diào)查,作為CDN的一項(xiàng)重要指標(biāo)-緩存的市場(chǎng)正在以每年近100%的速度增長(zhǎng),全球的營(yíng)業(yè)額在2004年將達(dá)到45億美元。網(wǎng)絡(luò)流媒體的發(fā)展還將剌激這個(gè)市場(chǎng)的需求。
6.CDN的網(wǎng)絡(luò)架構(gòu)
CDN網(wǎng)絡(luò)架構(gòu)主要由兩大部分,分為中心和邊緣兩部分,中心指CDN網(wǎng)管中心和DNS重定向解析中心,負(fù)責(zé)全局負(fù)載均衡,設(shè)備系統(tǒng)安裝在管理中心機(jī)房,邊緣主要指異地節(jié)點(diǎn),CDN分發(fā)的載體,主要由Cache和負(fù)載均衡器等組成。
當(dāng)用戶訪問(wèn)加入CDN服務(wù)的網(wǎng)站時(shí),域名解析請(qǐng)求將最終交給全局負(fù)載均衡DNS進(jìn)行處理。全局負(fù)載均衡DNS通過(guò)一組預(yù)先定義好的策略,將當(dāng)時(shí)最接近用戶的節(jié)點(diǎn)地址提供給用戶,使用戶能夠得到快速的服務(wù)。同時(shí),它還與分布在世界各地的所有CDNC節(jié)點(diǎn)保持通信,搜集各節(jié)點(diǎn)的通信狀態(tài),確保不將用戶的請(qǐng)求分配到不可用的CDN節(jié)點(diǎn)上,實(shí)際上是通過(guò)DNS做全局負(fù)載均衡。
對(duì)于普通的Internet用戶來(lái)講,每個(gè)CDN節(jié)點(diǎn)就相當(dāng)于一個(gè)放置在它周圍的WEB。通過(guò)全局負(fù)載均衡DNS的控制,用戶的請(qǐng)求被透明地指向離他最近的節(jié)點(diǎn),節(jié)點(diǎn)中CDN服務(wù)器會(huì)像網(wǎng)站的原始服務(wù)器一樣,響應(yīng)用戶的請(qǐng)求。由于它離用戶更近,因而響應(yīng)時(shí)間必然更快。
每個(gè)CDN節(jié)點(diǎn)由兩部分組成:負(fù)載均衡設(shè)備和高速緩存服務(wù)器
負(fù)載均衡設(shè)備負(fù)責(zé)每個(gè)節(jié)點(diǎn)中各個(gè)Cache的負(fù)載均衡,保證節(jié)點(diǎn)的工作效率;同時(shí),負(fù)載均衡設(shè)備還負(fù)責(zé)收集節(jié)點(diǎn)與周圍環(huán)境的信息,保持與全局負(fù)載DNS的通信,實(shí)現(xiàn)整個(gè)系統(tǒng)的負(fù)載均衡。
高速緩存服務(wù)器(Cache)負(fù)責(zé)存儲(chǔ)客戶網(wǎng)站的大量信息,就像一個(gè)靠近用戶的網(wǎng)站服務(wù)器一樣響應(yīng)本地用戶的訪問(wèn)請(qǐng)求。
CDN的管理系統(tǒng)是整個(gè)系統(tǒng)能夠正常運(yùn)轉(zhuǎn)的保證。它不僅能對(duì)系統(tǒng)中的各個(gè)子系統(tǒng)和設(shè)備進(jìn)行實(shí)時(shí)監(jiān)控,對(duì)各種故障產(chǎn)生相應(yīng)的告警,還可以實(shí)時(shí)監(jiān)測(cè)到系統(tǒng)中總的流量和各節(jié)點(diǎn)的流量,并保存在系統(tǒng)的數(shù)據(jù)庫(kù)中,使網(wǎng)管人員能夠方便地進(jìn)行進(jìn)一步分析。通過(guò)完善的網(wǎng)管系統(tǒng),用戶可以對(duì)系統(tǒng)配置進(jìn)行修改。
理論上,最簡(jiǎn)單的CDN網(wǎng)絡(luò)有一個(gè)負(fù)責(zé)全局負(fù)載均衡的DNS和各節(jié)點(diǎn)一臺(tái)Cache,即可運(yùn)行。DNS支持根據(jù)用戶源IP地址解析不同的IP,實(shí)現(xiàn)就近訪問(wèn)。為了保證高可用性等,需要監(jiān)視各節(jié)點(diǎn)的流量、健康狀況等。一個(gè)節(jié)點(diǎn)的單臺(tái)Cache承載數(shù)量不夠時(shí),才需要多臺(tái)Cache,多臺(tái)Cache同時(shí)工作,才需要負(fù)載均衡器,使Cache群協(xié)同工作。
7. CDN 示例
商業(yè)化的CDN網(wǎng)絡(luò)是用于服務(wù)性質(zhì)的,高可用性等要求非常高,有專業(yè)產(chǎn)品和CDN網(wǎng)絡(luò)解決方案,本文主要從理論角度,理解CDN的實(shí)現(xiàn)過(guò)程,并利用已有網(wǎng)絡(luò)環(huán)境和開源軟件做實(shí)際配置,更深刻理解CDN的具體工作過(guò)程。
Linux 是開放源代碼的免費(fèi)操作系統(tǒng),已經(jīng)成功應(yīng)用于許多關(guān)鍵領(lǐng)域。Bind是Unix/FreeBSD/Linux等類unix平臺(tái)上非常有名DNS服務(wù)程序,Internet上超過(guò)60%的DNS運(yùn)行的是bind。Bind的最新版本是9.x,用的比較多的是8.x,bind 9有很多新特性,其中一項(xiàng)是根據(jù)用戶端源地址對(duì)同一域名解析不同的IP地址,有了這種特性,能把用戶對(duì)同一域名的訪問(wèn),引導(dǎo)到不同地域節(jié)點(diǎn)的服務(wù)器上去訪問(wèn)。Squid是Linux等操作系統(tǒng)上有名的Cache引擎,與商業(yè)Cache引擎相比,Squid的性能比較低,基本功能工作原理與商業(yè)Cache產(chǎn)品是一致的,作為試驗(yàn),是非常容易配置運(yùn)行起來(lái)。以下簡(jiǎn)要介紹CDN的配置流程。
1、要加入CDN服務(wù)的網(wǎng)站,需要域名(如www.linuxaid.com.cn,地址202.99.11.120)解析權(quán)提供給CDN運(yùn)營(yíng)商,Linuxaid的域名解析記錄只要把www主機(jī)的A記錄改為CNAME并指向cache.cdn.com即可。cache.cdn.com是CDN網(wǎng)絡(luò)自定義的緩存服務(wù)器的標(biāo)識(shí)。在/var/named/linuxaid.com.cn域名解析記錄中,由:
www IN A 202.99.11.120
改為
www IN CNAME cache.cdn.com.
2、CDN運(yùn)營(yíng)商得到域名解析權(quán)以后,得到域名的CNAME記錄,指向CDN網(wǎng)絡(luò)屬下緩存服務(wù)器的域名,如cache.cdn.com,CDN網(wǎng)絡(luò)的全局負(fù)載均衡DNS,需要把CNAME記錄根據(jù)策略解析出IP地址,一般是給出就近訪問(wèn)的Cache地址。
Bind 9的基本功能可以根據(jù)不同的源IP地址段解析對(duì)應(yīng)的IP,實(shí)現(xiàn)根據(jù)地域就近訪問(wèn)的負(fù)載均衡,一般可以通過(guò)Bind 9的sortlist選項(xiàng)實(shí)現(xiàn)根據(jù)用戶端IP地址返回最近的節(jié)點(diǎn)IP地址,具體的過(guò)程為:
1)為cache.cdn.com設(shè)置多個(gè)A記錄,/var/named/cdn.com 的內(nèi)容如下:
$TTL 3600
@ IN SOA ns.cdn.com. root.ns.cdn.com. (
2002090201 ;Serial num
10800 ;Refresh after 3 hours
3600 ;Retry
604800 ;Expire
1800 ;Time to live
)
IN NS ns
www IN A 210.33.21.168
ns IN A 202.96.128.68
cache IN A 202.93.22.13 ;有多少個(gè)CACHE地址
cache IN A 210.21.30.90 ;就有多少個(gè)CACHE的A記錄
cache IN A 211.99.13.47
2) /etc/named.conf中的內(nèi)容為:
options {
directory "/var/named";
sortlist {
#這一段表示當(dāng)在本地執(zhí)行查詢時(shí)
#將按照202.93.22.13,210.21.30.90,211.99.13.47的順序返回地址
{ localhost;
{ localnets;
202.93.22.13;
{ 210.21.30.90; 211.99.13.47; };
};
};
#這一段表示當(dāng)在202/8地址段進(jìn)行DNS查詢時(shí)
#將按照202.93.22.13,210.21.30.90,211.99.13.47的順序返回地址
{ 202/8;
{ 202.93.22.13;
{ 210.21.30.90; 211.99.13.47; };
};
};
#這一段表示當(dāng)在211/8地址段進(jìn)行DNS查詢時(shí)
#將按照211.99.13.47,202.93.22.13,210.21.30.90的順序返回地址,
#也就是211.99.13.47是最靠近查詢地點(diǎn)的節(jié)點(diǎn)
{ 211/8;
{ 211.99.13.47;
{ 202.93.22.13; 210.21.30.90; };
};
};
{ 61/8;
{ 202.93.22.13;
{ 210.21.30.90; 211.99.13.47; };
};
};
};
};
zone "." {
type hint;
file "root.cache";
};
zone "localhost" {
type master;
file "localhost";
};
zone "cdn.com" {
type master;
file "cdn.com";
};
3、Cache在CDN網(wǎng)絡(luò)中如果工作在服務(wù)器加速模式,因?yàn)榕渲美镆呀?jīng)寫明加速服務(wù)器的url,所以Cache直接匹配用戶請(qǐng)求,到源服務(wù)器獲得內(nèi)容并緩存供下次使用;如果Cache工作在客戶端加速模式,Cache需要知道源服務(wù)器的IP地址,所以CDN網(wǎng)絡(luò)維護(hù)和運(yùn)行一個(gè)供Cache使用的DNS服務(wù)器,解析域名的真實(shí)IP地址,如202.99.11.120 ,各域名的解析記錄與未加入CDN網(wǎng)絡(luò)之前一樣。
4、工作在CDN網(wǎng)絡(luò)中緩存服務(wù)器必須工作在透明方式,對(duì)于Squid來(lái)說(shuō),需要設(shè)置以下參數(shù):
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on |
|