CDN的基本工做過程瀏覽器
使用CDN會極大地簡化網站的系統維護工做量,網站維護人員只需將網站內容注入CDN的系統,經過CDN部署在各個物理位置的服務器進行全網分發,就能夠實現跨運營商、跨地域的用戶覆蓋。因爲CDN將內容推送到網絡邊緣,大量的用戶訪問被分散在網絡邊緣,再也不構成網站出口、互聯互通點的資源擠佔,也再也不須要跨越長距離IP路由了。緩存
CDN是如何工做的呢?讓咱們先看看沒有CDN服務時,一個網站是如何向用戶提供服務的。服務器
今天咱們看到的網站系統基本上都是基於B/S架構的。B/S架構,即Browser-Server(瀏覽器 服務器)架構,是對傳統C/S架構的一種變化或者改進架構。在這種架構下,用戶只需使用通用瀏覽器,主要業務邏輯在服務器端實現。B/S架構,主要是利用了不斷成熟的WWW瀏覽器技術,結合瀏覽器的多種Script語言(VBScript、JavaScript等)和ActiveX等技術,在通用瀏覽器上實現了C/S架構下須要複雜的軟件才能實現的強大功能。網絡
用戶經過瀏覽器等方式訪問網站的過程如圖1-2所示。架構
圖1-2 互聯網用戶服務訪問流程 |
①用戶在本身的瀏覽器中輸入要訪問的網站域名。負載均衡
②瀏覽器向本地DNS服務器請求對該域名的解析。網站
③本地DNS服務器中若是緩存有這個域名的解析結果,則直接響應用戶的解析請求。spa
④本地DNS服務器中若是沒有關於這個域名的解析結果的緩存,則以遞歸方式向整個DNS系統請求解析,得到應答後將結果反饋給瀏覽器。3d
⑤瀏覽器獲得域名解析結果,就是該域名相應的服務設備的IP地址。blog
⑥瀏覽器向服務器請求內容。
⑦服務器將用戶請求內容傳送給瀏覽器。
在網站和用戶之間加入CDN之後,用戶不會有任何與原來不一樣的感受。最簡單的CDN網絡有一個DNS服務器和幾臺緩存服務器就能夠運行了。一個典型的CDN用戶訪問調度流程如圖1-3所示。
圖1-3 引入CDN後的典型用戶訪問流程 |
①當用戶點擊網站頁面上的內容URL,通過本地DNS系統解析,DNS系統會最終將域名的解析權交給CNAME指向的CDN專用DNS服務器。
②CDN的DNS服務器將CDN的全局負載均衡設備IP地址返回用戶。
③用戶向CDN的全局負載均衡設備發起內容URL訪問請求。
④CDN全局負載均衡設備根據用戶IP地址,以及用戶請求的內容URL,選擇一臺用戶所屬區域的區域負載均衡設備,告訴用戶向這臺設備發起請求。
⑤區域負載均衡設備會爲用戶選擇一臺合適的緩存服務器提供服務,選擇的依據包括:根據用戶IP地址,判斷哪一臺服務器距用戶最近;根據用戶所請求的URL中攜帶的內容名稱,判斷哪一臺服務器上有用戶所需內容;查詢各個服務器當前的負載狀況,判斷哪一臺服務器尚有服務能力。基於以上這些條件的綜合分析以後,區域負載均衡設備會向全局負載均衡設備返回一臺緩存服務器的IP地址。
⑥全局負載均衡設備把服務器的IP地址返回給用戶。
⑦用戶向緩存服務器發起請求,緩存服務器響應用戶請求,將用戶所需內容傳送到用戶終端。若是這臺緩存服務器上並無用戶想要的內容,而區域均衡設備依然將它分配給了用戶,那麼這臺服務器就要向它的上一級緩存服務器請求內容,直至追溯到網站的源服務器將內容拉到本地。
DNS服務器根據用戶IP地址,將域名解析成相應節點的緩存服務器IP地址,實現用戶就近訪問。使用CDN服務的網站,只需將其域名解析權交給CDN的GSLB設備,將須要分發的內容注入CDN,就能夠實現內容加速了。