詳解 CDN 加速


背景

  • 本來是為了深入了解 CDN 的,結果發現前置知識:IP、域名、DNS 都還不算特別熟,所以先寫了他們
  • 現在終於來聊一聊 CDN 啦
  • 本文素材均出自:https://www.bilibili.com/video/BV12T4y1P7Fh,動畫仍然滿分

 

如何打開一個網站

前面說過了

  1. 瀏覽器訪問域名
  2. DNS 負責解析域名,找到域名對應的 IP 地址
  3. 瀏覽器訪問 IP 地址對應的服務器,渲染響應內容

 

存在兩個問題

問題一

  • 服務器有地理位置
  • 無論是雲服務器,還是傳統服務器,它都有一個地理位置
  • 如果請求它的設備離它很遠,那么它的請求時間肯定會更長
  • 假設同時有很多個設備同時請求,帶寬有限的情況下,即使離服務器很近,那請求時間也會被拉長

 

問題二

  • 服務器穩定性,會小概率出現宕機
  • 假設原始服務器出現宕機問題,會導致網站無法正常訪問
  • 如果是小公司,還沒有專業的運維人員的話,那么宕機發生的時候可能會無法及時告警

 

CDN 介紹

全稱

Content Delivery Network,內容分發網絡

 

為什么會出現

就是為了解決上述兩個問題:限於地理位置、服務器穩定性

 

場景類比

用過京東網購都知道,為什么京東物流能當天/隔日到?因為它有前置倉、區域倉的倉儲配送機制

電商物流進化歷程

  • 第一階段:只有商家倉庫,無論在哪購買,都從倉庫發貨,所以快遞時間需要 3-10 天
  • 第二階段:建立區域倉,在一些關鍵城市建立區域倉,然后從商家倉庫囤點貨,當下單購買后,會就近選擇區域倉進行發貨
  • 第三階段:建立前置倉,就是京東那種,就在你家旁邊建一個倉庫,送貨速度極快

CDN 其實就是類似第三階段,讓離你最近的服務器發送數據,這樣無論在哪訪問網站,速度都是杠杠的

 

CDN 實現原理

一開始已經復習了下是如何打開一個網站的,其實 CDN 跟 DNS 也是有關系的

前提:沒有 CDN 的情況下

 

跟開頭講的順序一樣

  1. 瀏覽器查詢 DNS 服務器域名對應 IP 地址是什么
  2. DNS 服務器返回 IP 地址
  3. 瀏覽器訪問 IP 地址對應的服務器
  4. 服務器返回網站數據給瀏覽器 

 

添加 CDN 專用解析記錄

  • 在域名的 DNS 解析設置中,添加一條 CDN 專用的解析記錄
  • 這條解析記錄會讓域名被解析之后, 會指向一個 CDN 網絡專用的處理 DNS 服務器

 

CDN 專用的 DNS 服務器

  1. 瀏覽器發送 DNS 查詢請求到 DNS 服務器
  2. DNS 服務器會返回 CDN 專用的處理 DNS 請求的服務器的 IP 地址給瀏覽器(上面說的 CDN 專用解析記錄)
  3. 瀏覽器拿到 IP 地址后訪問 CDN 專用 DNS 服務器
  4. 然后呢,CDN 專用 DNS 服務器就會返回 CDN 負載均衡服務器的 IP 地址
  5. 瀏覽器拿到 IP 地址后訪問 CDN 負載均衡服務器
  6. CDN 負載均衡服務器會根據瀏覽器的網絡地址,在 CDN 網絡中返回最適合的 CDN 服務器的 IP 地址,可能是沒什么人用的服務器,也可能是比較近的服務器

 

CDN 負載均衡服務器的作用

它會給請求設備分配合適的 CDN 服務器的 IP 地址

 

獲取網站數據

  1. 瀏覽器拿到 CDN 服務器的 IP 地址之后,就會訪問它
  2. 假設第一個 CDN 服務器沒有需要的網站文件(緩存中沒有),就會去 CDN 網絡中的上層 CDN 服務器中拉取
  3. 如果上層 CDN 服務器沒有還會繼續往上層找
  4. 如果所有上層 CDN 服務器都沒有找到,就會去源站中拉取
  5. 拉取成功之后,就會在剛剛經過的所有 CDN 服務器中緩存這些網站文件
  6. 最后第一個 CDN 服務器會將網絡文件發送給瀏覽器

 

源站 IP

  • 瀏覽器需要訪問的域名的網站服務器的 IP 地址
  • 在開通 CDN 的時候,就需要在 CDN 后台設置源站 IP 
  • 網站的文件就是放在源站上的,比如靜態資源文件、視頻、音頻

 

CDN 服務器的緩存機制

  • 通過 CDN 服務器的緩存機制,這樣下次其他設備要去訪問 www.bilibili.com 的時候,就能直接從 CDN 服務器的緩存中拉取到對應的網站文件了
  • 不需要訪問源站的話,可以減少源站壓力,還能加快請求速度

 

CDN 服務器的穩定性

  • CDN 的緩存機制除了能讓用戶快速打開一個網站,還可以提高網站的穩定性
  • 假設源站宕機,或者 CDN 服務器節點宕機了之后,CDN 網絡中還有其他 CDN 服務器可用,這樣訪問網站就可以從可用的 CDN 服務器上拉取網站文件,不至於訪問不了網站

 

待更新更深入的內容 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM