1. 程式人生 > >web前端性能優化之CDN

web前端性能優化之CDN

壓力 前端 負載 work 用戶訪問 解決 引入 地址 可靠

什麽是CDN

CDN (Content Delivery Network) 可直譯成內容分發網絡。CDN的本質仍然李詠緩存技術緩存, 解決的是__如何將數據快速可靠從源站傳遞到用戶的問題__。用戶獲取數據時,不需要直接從源站獲取,通過CDN對於數據的分發,用戶可以從一個較優的服務器獲取數據,從而達到快速訪問,並減少源站負載壓力的目的。

CDN加速動機

為什麽不從源站進行數據的直接交付,即讓用戶直接從源站獲取數據呢?
如果網絡上的數據都使用從源站直接交付到用戶的方法,那麽將極有可能會出現訪問擁塞的情況。
如果能有一種技術方案,將數據緩存在離用戶最近的地方,使用戶以最快的速度獲取,那這對於減少網站的出口帶寬壓力,減少網絡傳輸的擁堵情況,將起到很大的作用。CDN正是這樣一種技術方案。

CDN原理

用戶在通過瀏覽器訪問未使用CDN加速的網站的大致過程如下:
技術分享圖片

  1. 用戶在瀏覽器中輸入要訪問的域名。
  2. 瀏覽器向DNS服務器請求對該域名的解析。
  3. DNS服務器返回該域名的IP地址給瀏覽器。
  4. 瀏覽器使用該IP地址向服務器請求內容。
  5. 服務器將用戶請求的內容返回給瀏覽器。

如果使用了CDN,則其過程會變成以下這樣
技術分享圖片

  1. 用戶在瀏覽器中輸入要訪問的域名。
  2. 瀏覽器向DNS服務器請求對域名進行解析。由於CDN對域名解析進行了調整,DNS服務器會最終將域名的解析權交給CNAME指向的CDN專用DNS服務器。
  3. CDN的DNS服務器將CDN的負載均衡設備IP地址返回給用戶。
  4. 用戶向CDN的負載均衡設備發起內容URL訪問請求。
  5. CDN負載均衡設備會為用戶選擇一臺合適的緩存服務器提供服務。
    選擇的依據包括:
    根據用戶IP地址,判斷哪一臺服務器距離用戶最近;
    根據用戶所請求的URL中攜帶的內容名稱,判斷哪一臺服務器上有用戶所需內容;
    查詢各個服務器的負載情況,判斷哪一臺服務器的負載較小。
    基於以上這些依據的綜合分析之後,負載均衡設置會把緩存服務器的IP地址返回給用戶。
  6. 用戶向緩存服務器發出請求。
  7. 緩存服務器響應用戶請求,將用戶所需內容傳送到用戶。
    如果這臺緩存服務器上並沒有用戶想要的內容,而負載均衡設備依然將它分配給了用戶,那麽這臺服務器就要向它的上一級緩存服務器請求內容,直至追溯到網站的源服務器將內容拉取到本地。

總結

在網站和用戶之間引入CDN之後,用戶不會有任何與原來不同的感覺。
使用CDN服務的網站,只需將其域名的解析權交給CDN的負載均衡設備,CDN負載均衡設備將為用戶選擇一臺合適的緩存服務器,用戶通過訪問這臺緩存服務器來獲取自己所需的數據。
由於緩存服務器部署在網絡運營商的機房,而這些運營商又是用戶的網絡服務提供商,因此用戶可以以最短的路徑,最快的速度對網站進行訪問。因此,CDN可以加速用戶訪問速度,減少源站中心負載壓力。

web前端性能優化之CDN