你們對CDN並不陌生,工做中或多或少都有所接觸,最近也有人問到,在此對CDN相關概念和流程作下總結,但願還能對其餘朋友也有所幫助。nginx
1、什麼是CDN瀏覽器
維基百科上是這樣定義的:緩存
CDN:內容分發網絡(Content delivery network或Content distribution network)是指一種經過互聯網互相鏈接的電腦網絡系統,利用最靠近每位用戶的服務器,更快、更可靠地將音樂、圖片、視頻、應用程序及其餘文件發送給用戶,來提供高性能、可擴展性及低成本的網絡內容傳遞給用戶。服務器
對於還未了解的朋友,可能還不清楚CDN究竟是啥,究竟是作什麼的?下面舉個例子說明下:微信
之前尚未火車票代售點,12306.cn也只不過是最近幾年纔有。那時候火車票還智能在火車站的售票大廳購買,好多小縣城不通火車,火車票要到市裏去買,從小縣城到市裏去買火車票來回要花很多時間。後來小縣城有了火車票代售點,能夠直接在代售點購買車票,方便了不少,全市人民不再用苦逼的排隊在一個點買票了,能夠分散到不一樣的火車票代售點。那麼CDN就能夠理解爲分佈在每一個縣城的火車票代售點,用戶在瀏覽網站時,CDN會選擇一個離用戶最近的CDN邊緣節點來響應用戶的請求,這樣上海的移動用戶的請求就不用千里迢迢跑到北京電信機房的服務器上了(假設源站部署在北京電信機房)。這樣,CDN節點解決了跨運營商和跨地域訪問的問題,訪問時間大大下降,同時,大部分請求在CDN邊緣節點完成,CDN起到了分流做用,減輕了源站的負載。網絡
2、CDN工做流程架構
用戶訪問未使用CDN緩存網站的過程爲:負載均衡
用戶在瀏覽網站的時候,瀏覽器可以在本地保存網站中的圖片或者資源文件,這樣用戶再次訪問該網站的時候,瀏覽器就不用再下載所有的資源文件,減小了下載量意味着提升了頁面加載的速度。性能
CDN網絡是在用戶和服務器之間增長Cache層,主要是經過接管DNS實現,將用戶的請求引導到Cache上得到源服務器的數據測試
下面讓咱們看看訪問使用CDN緩存後的網站的過程:
通常來講CDN節點會包括nginx和cache兩部分,nginx做負載均衡,cache做爲緩存,用戶請求到CDN節點後,若是cache中沒有緩存用戶的內容(包括真的沒有或者是過時時間到了),這時候CDN節點會去源站去請求用戶所需的資源,拿到數據後CDN節點會作兩件事情,把數據返回給用戶,而且把數據緩存在cache,這樣一樣的請求就能夠從cache取,不須要回源了。另外你要注意,當前的CDN不會讓源站來推送數據的,都是第一次去源站取,採用拉數據的方式。
對於測試人員,須要確認下網站所加載的圖片等資源是否都走了CDN,看下是否爲CDN域名地址,網站提速不可缺乏的一部分。
當前CDN都在拼價格,不想之前被chinaCache壟斷,BAT都有本身的CDN節點,對第三方CDN的依賴也在降低。就寫到這吧,是否對CDN有所瞭解了,留言告訴我吧!
測試架構師論壇:http://www.youxitest.com
瞭解更多請關注微信公衆號:測試架構師