1.前言
Internet的高速發(fā)展,給人們的工作和生活帶來了極大的便利,對(duì)Internet的服務(wù)品質(zhì)和訪問速度要求越來越高,雖然帶寬不斷增加, 用戶數(shù)量也在不斷增加,受Web服務(wù)器的負(fù)荷和傳輸距離等因數(shù)的影響,響應(yīng)速度慢還是經(jīng)常抱怨和困擾。解決方案就是在網(wǎng)絡(luò)傳輸上利用緩存技術(shù)使得Web服 務(wù)數(shù)據(jù)流能就近訪問,是優(yōu)化網(wǎng)絡(luò)數(shù)據(jù)傳輸非常有效的技術(shù),從而獲得高速的體驗(yàn)和品質(zhì)保證。
網(wǎng)絡(luò)緩存技術(shù),其目的就是減少網(wǎng)絡(luò)中冗余數(shù)據(jù)的重復(fù)傳輸,使之最小化,將廣域傳輸轉(zhuǎ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ù)峰值訪問造成的結(jié)點(diǎn)設(shè)備阻塞。Cache服 務(wù)器具有緩存功能,所以大部分網(wǎng)頁對(duì)象(Web page object),如html, htm, php等頁面文件,gif,tif,png,bmp等圖片文件,以及其他格式的文件,在有效期(TTL)內(nèi),對(duì)于重復(fù)的訪問,不必從原始網(wǎng)站重新傳送文件 實(shí)體, 只需通過簡單的認(rèn)證(Freshness Validation)- 傳送幾十字節(jié)的Header,即可將本地的副本直接傳送給訪問者。由于緩存服務(wù)器通常部署在靠近用戶端,所以能獲得近似局域網(wǎng)的響應(yīng)速度,并有效減少廣域 帶寬的消耗。據(jù)統(tǒng)計(jì),Internet上超過80%的用戶重復(fù)訪問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ò)出口處,把常訪問的內(nèi)容緩存在本地,提高響應(yīng)速度和節(jié)約帶寬;服務(wù)器加速,Cache部署在服務(wù)器前端,作為Web服務(wù)器的前置
機(jī),提高Web服務(wù)器的性能,加速訪問速度。如果多臺(tái)Cache加速服務(wù)器且分布在不同地域,需要通過有效地機(jī)制管理Cache網(wǎng)絡(luò),引導(dǎo)用戶就近訪問,
全局負(fù)載均衡流量,這就是CDN內(nèi)容傳輸網(wǎng)絡(luò)的基本思想。
2.什么是CDN? 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ò)"邊緣",使用戶可
以就近取得所需的內(nèi)容,解決Internet網(wǎng)絡(luò)擁塞狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點(diǎ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ù)模式。簡單地說,內(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的核心所在。通過用戶就近性和服務(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)站頁面的
70%~95%的內(nèi)容訪問量,減輕服務(wù)器的壓力,提升了網(wǎng)站的性能和可擴(kuò)展性。 與目前現(xiàn)有的內(nèi)容發(fā)布模式相比較,CDN強(qiáng)調(diào)了網(wǎng)絡(luò)在內(nèi)容發(fā)布中的重要性。通過引入主動(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í)際所需的帶寬通量來實(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ù)器過載退出服務(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ù)提供商將其串接起來。隨著互聯(lián)網(wǎng)工業(yè)的成熟和商業(yè)模式的變
革,在這條價(jià)值鏈上的角色越來越多也越來越細(xì)分。比如內(nèi)容/應(yīng)用的運(yùn)營商、托管服務(wù)提供商、骨干網(wǎng)絡(luò)服務(wù)提供商、接入服務(wù)提供商等等。在這一條價(jià)值鏈上的
每一個(gè)角色都要分工合作、各司其職才能為客戶提供良好的服務(wù),從而帶來多贏的局面。從內(nèi)容與網(wǎng)絡(luò)的結(jié)合模式上看,內(nèi)容的發(fā)布已經(jīng)走過了ICP的內(nèi)容(應(yīng)
用)服務(wù)器和IDC這兩個(gè)階段。IDC的熱潮也催生了托管服務(wù)提供商這一角色。但是,IDC并不能解決內(nèi)容的有效發(fā)布問題。內(nèi)容位于網(wǎng)絡(luò)的中心并不能解決
骨干帶寬的占用和建立IP網(wǎng)絡(luò)上的流量秩序。因此將內(nèi)容推到網(wǎng)絡(luò)的邊緣,為用戶提供就近性的邊緣服務(wù),從而保證服務(wù)的質(zhì)量和整個(gè)網(wǎng)絡(luò)上的訪問秩序就成了一
種顯而易見的選擇。而這就是內(nèi)容發(fā)布網(wǎng)(CDN)服務(wù)模式。CDN的建立解決了困擾內(nèi)容運(yùn)營商的內(nèi)容"集中與分散"的兩難選擇。無疑對(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ù)器、設(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)營上主建的CDN網(wǎng)絡(luò),主要提供
內(nèi)容推送服務(wù);CDN網(wǎng)絡(luò)服務(wù)商,專門建設(shè)的CDN用于做服務(wù),用戶通過與CDN機(jī)構(gòu)進(jìn)行合作,CDN負(fù)責(zé)信息傳遞工作,保證信息正常傳輸,維護(hù)傳送網(wǎng)
絡(luò),而網(wǎng)站只需要內(nèi)容維護(hù),不再需要考慮流量問題。 CDN能夠?yàn)榫W(wǎng)絡(luò)的快速、安全、穩(wěn)定、可擴(kuò)展等方面提供保障。 IDC建立CDN網(wǎng)絡(luò),IDC運(yùn)營商一般需要有分部各地的多個(gè)IDC中心,服務(wù)對(duì)象是托管在IDC中心的客戶,利用現(xiàn)有的網(wǎng)絡(luò)資源,投資較少,
容易建設(shè)。例如某IDC全國有10個(gè)機(jī)房,加入IDC的CDN網(wǎng)絡(luò),托管在一個(gè)節(jié)點(diǎn)的Web服務(wù)器,相當(dāng)于有了10個(gè)鏡像服務(wù)器,就近供客戶訪問。寬帶城
域網(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ò),用戶僅一跳就能訪問大部分的內(nèi)容,這也是一種加速所有網(wǎng)站CDN的應(yīng)用。
4.CDN 的工作原理 在描述CDN的實(shí)現(xiàn)原理,讓我們先看傳統(tǒng)的未加緩存服務(wù)的訪問過程,以便了解CDN緩存訪問方式與未加緩存訪問方式的差別: 由上圖可見,用戶訪問未使用CDN緩存網(wǎng)站的過程為: 1)、用戶向?yàn)g覽器提供要訪問的域名; 2)、瀏覽器調(diào)用域名解析函數(shù)庫對(duì)域名進(jìn)行解析,以得到此域名對(duì)應(yīng)的IP地址; 3)、瀏覽器使用所得到的IP地址,域名的服務(wù)主機(jī)發(fā)出數(shù)據(jù)訪問請(qǐng)求; 4)、瀏覽器根據(jù)域名主機(jī)返回的數(shù)據(jù)顯示網(wǎng)頁的內(nèi)容。 通過以上四個(gè)步驟,瀏覽器完成從用戶處接收用戶要訪問的域名到從域名服務(wù)主機(jī)處獲取數(shù)據(jù)的整個(gè)過程。CDN網(wǎng)絡(luò)是在用戶和服務(wù)器之間增加
Cache層,如何將用戶的請(qǐng)求引導(dǎo)到Cache上獲得源服務(wù)器的數(shù)據(jù),主要是通過接管DNS實(shí)現(xiàn),下面讓我們看看訪問使用CDN緩存后的網(wǎng)站的過程: 通過上圖,我們可以了解到,使用了CDN緩存后的網(wǎng)站的訪問過程變?yōu)椋?/p>
1)、用戶向?yàn)g覽器提供要訪問的域名; 2)、瀏覽器調(diào)用域名解析庫對(duì)域名進(jìn)行解析,由于CDN對(duì)域名解析過程進(jìn)行了調(diào)整,所以解析函數(shù)庫一般得到的是該域名對(duì)應(yīng)的CNAME記錄,為
了得到實(shí)際IP地址,瀏覽器需要再次對(duì)獲得的CNAME域名進(jìn)行解析以得到實(shí)際的IP地址;在此過程中,使用的全局負(fù)載均衡DNS解析,如根據(jù)地理位置信
息解析對(duì)應(yīng)的IP地址,使得用戶能就近訪問。 3)、此次解析得到CDN緩存服務(wù)器的IP地址,瀏覽器在得到實(shí)際的IP地址以后,向緩存服務(wù)器發(fā)出訪問請(qǐng)求; 4)、緩存服務(wù)器根據(jù)瀏覽器提供的要訪問的域名,通過Cache內(nèi)部專用DNS解析得到此域名的實(shí)際IP地址,再由緩存服務(wù)器向此實(shí)際IP地址提交訪問請(qǐng)求; 5)、緩存服務(wù)器從實(shí)際IP地址得得到內(nèi)容以后,一方面在本地進(jìn)行保存,以備以后使用,二方面把獲取的數(shù)據(jù)返回給客戶端,完成數(shù)據(jù)服務(wù)過程; 6)、客戶端得到由緩存服務(wù)器返回的數(shù)據(jù)以后顯示出來并完成整個(gè)瀏覽的數(shù)據(jù)請(qǐng)求過程。 通過以上的分析我們可以得到,為了實(shí)現(xiàn)既要對(duì)普通用戶透明(即加入緩存以后用戶客戶端無需進(jìn)行任何設(shè)置,直接使用被加速網(wǎng)站原有的域名即可訪
問),又要在為指定的網(wǎng)站提供加速服務(wù)的同時(shí)降低對(duì)ICP的影響,只要修改整個(gè)訪問過程中的域名解析部分,以實(shí)現(xiàn)透明的加速服務(wù),下面是CDN網(wǎng)絡(luò)實(shí)現(xiàn)的
具體操作過程。 1)、作為ICP,只需要把域名解釋權(quán)交給CDN運(yùn)營商,其他方面不需要進(jìn)行任何的修改;操作時(shí),ICP修改自己域名的解析記錄,一般用cname方式指向CDN網(wǎng)絡(luò)Cache服務(wù)器的地址。 2)、作為CDN運(yùn)營商,首先需要為ICP的域名提供公開的解析,為了實(shí)現(xiàn)sortlist,一般是把ICP的域名解釋結(jié)果指向一個(gè)CNAME記錄; 3)、當(dāng)需要進(jìn)行sorlist時(shí),CDN運(yùn)營商可以利用DNS對(duì)CNAME指向的域名解析過程進(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)營商內(nèi)部維護(hù)一個(gè)內(nèi)部DNS服務(wù)器,用于解釋用戶所訪問的域名的真實(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ù)器。可工作于DNS解析或HTTP重定向兩種方式,通過Cache服務(wù)器,或異地的鏡像站點(diǎn)
完成內(nèi)容的傳送與同步更新。DNS方式用戶位置判斷準(zhǔn)確率大于85%,HTTP方式準(zhǔn)確率為99%以上;一般情況,各Cache服務(wù)器群的用戶訪問流入數(shù)
據(jù)量與Cache服務(wù)器到原始網(wǎng)站取內(nèi)容的數(shù)據(jù)量之比在2:1到3:1之間,即分擔(dān)50%到70%的到原始網(wǎng)站重復(fù)訪問數(shù)據(jù)量(主要是圖片,流媒體文件等
內(nèi)容);對(duì)于鏡像,除數(shù)據(jù)同步的流量,其余均在本地完成,不訪問原始服務(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ù)同步。但是購買和維護(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ì)表明,超過80%的用戶經(jīng)常訪問的是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ù)美國IDC公司的調(diào)查,作為CDN的一項(xiàng)重要指標(biāo)-緩存的市場正在以每年近100%的速度增長,全球的營業(yè)額在2004年將達(dá)
到45
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)用戶訪問加入CDN服務(wù)的網(wǎng)站時(shí),域名解析請(qǐng)求將最終交給全局負(fù)載均衡DNS進(jìn)行處理。全局負(fù)載均衡DNS通過一組預(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í)際上是通過DNS做全局負(fù)載均衡。 對(duì)于普通的Internet用戶來講,每個(gè)CDN節(jié)點(diǎn)就相當(dāng)于一個(gè)放置在它周圍的WEB。通過全局負(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)本地用戶的訪問請(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)測
到系統(tǒng)中總的流量和各節(jié)點(diǎn)的流量,并保存在系統(tǒng)的數(shù)據(jù)庫中,使網(wǎng)管人員能夠方便地進(jìn)行進(jìn)一步分析。通過完善的網(wǎng)管系統(tǒng),用戶可以對(duì)系統(tǒng)配置進(jì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)就近訪問。為了保證高可用性等,需要監(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)過程,并利用已有網(wǎng)絡(luò)環(huán)境和開源軟件做實(shí)際配置,更深刻理解CDN的具體工作過程。
Linux 是開放源代碼的免費(fèi)操作系統(tǒng),已經(jīng)成功應(yīng)用于許多關(guān)鍵領(lǐng)域。Bind是Unix/FreeBSD/Linux等類unix平臺(tái)上非常有名DNS服務(wù)程序, Internet上超過60%的DNS運(yùn)行的是bind。Bind的最新版本是9.x,用的比較多的是8.x,bind 9有很多新特性,其中一項(xiàng)是根據(jù)用戶端源地址對(duì)同一域名解析不同的IP地址,有了這種特性,能把用戶對(duì)同一域名的訪問,引導(dǎo)到不同地域節(jié)點(diǎn)的服務(wù)器上去訪 問。Squid是Linux等操作系統(tǒng)上有名的Cache引擎,與商業(yè)Cache引擎相比,Squid的性能比較低,基本功能工作原理與商業(yè)Cache產(chǎn) 品是一致的,作為試驗(yàn),是非常容易配置運(yùn)行起來。以下簡要介紹CDN的配置流程。
1、要加入CDN服務(wù)的網(wǎng)站,需要域名(如www.linuxaid.com.cn,地址202.99.11.120)解析權(quán)提供給CDN運(yùn)營 商,Linuxaid的域名解析記錄只要把www主機(jī)的A記錄改為CNAME并指向cache.cdn.com即可。cache.cdn.com是CDN 網(wǎng)絡(luò)自定義的緩存服務(wù)器的標(biāo)識(shí)。在/var/named/linuxaid.com.cn域名解析記錄中,由:
|
2、CDN運(yùn)營商得到域名解析權(quán)以后,得到域名的CNAME記錄,指向CDN網(wǎng)絡(luò)屬下緩存服務(wù)器的域名,如cache.cdn.com,CDN網(wǎng)絡(luò)的全局負(fù)載均衡DNS,需要把CNAME記錄根據(jù)策略解析出IP地址,一般是給出就近訪問的Cache地址。
Bind 9的基本功能可以根據(jù)不同的源IP地址段解析對(duì)應(yīng)的IP,實(shí)現(xiàn)根據(jù)地域就近訪問的負(fù)載均衡,一般可以通過Bind 9的sortlist選項(xiàng)實(shí)現(xiàn)根據(jù)用戶端IP地址返回最近的節(jié)點(diǎn)IP地址,具體的過程為:
1)為cache.cdn.com設(shè)置多個(gè)A記錄,/var/named/cdn.com 的內(nèi)容如下:
|
2) /etc/named.conf中的內(nèi)容為:
|
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來說,需要設(shè)置以下參數(shù):
|