天天看點

前端cdn加速如何實作_前端必知必會: CDN加速原理一、什麼是 CDN二、CDN工作原理三、名詞解釋

點選上方 "前端技術精選" 關注,星标或者置頂

17點30分準時推送,第一時間送達

作者:Kandy | 編輯:前端妹

來自:code秘密花園

前端技術精選(ID:FrontEndTech)第 86 次推文 圖源:百度 上一篇:淺析鴻蒙 JavaScript GUI 技術棧

正文

一、什麼是 CDN

CDN的全稱是(Content Delivery Network),即内容分發網絡。其目的是通過在現有的Internet中增加一層新的CACHE(緩存)層,将網站的内容釋出到最接近使用者的網絡”邊緣“的節點,使使用者可以就近取得所需的内容,提高使用者通路網站的響應速度。從技術上全面解決由于網絡帶寬小、使用者通路量大、網點分布不均等原因,提高使用者通路網站的響應速度。

簡單的說,CDN的工作原理就是将您源站的資源緩存到位于全球各地的CDN節點上,使用者請求資源時,就近傳回節點上緩存的資源,而不需要每個使用者的請求都回您的源站擷取,避免網絡擁塞、緩解源站壓力,保證使用者通路資源的速度和體驗

前端cdn加速如何實作_前端必知必會: CDN加速原理一、什麼是 CDN二、CDN工作原理三、名詞解釋

CDN對網絡的優化作用主要展現在如下幾個方面

  • 解決伺服器端的“第一公裡”問題
  • 緩解甚至消除了不同營運商之間互聯的瓶頸造成的影響
  • 減輕了各省的出口帶寬壓力
  • 緩解了骨幹網的壓力
  • 優化了網上熱點内容的分布

二、CDN工作原理

傳統通路過程

前端cdn加速如何實作_前端必知必會: CDN加速原理一、什麼是 CDN二、CDN工作原理三、名詞解釋

由上圖可見,使用者通路未使用CDN緩存網站的過程為:

1.使用者輸入通路的域名,作業系統向 LocalDns 查詢域名的ip位址.

2.LocalDns向 ROOT DNS 查詢域名的授權伺服器(這裡假設LocalDns緩存過期)

3.ROOT DNS将域名授權dns記錄回應給 LocalDns

4.LocalDns得到域名的授權dns記錄後,繼續向域名授權dns查詢域名的ip位址

5.域名授權dns 查詢域名記錄後,回應給 LocalDns

6.LocalDns 将得到的域名ip位址,回應給 使用者端

7.使用者得到域名ip位址後,通路站點伺服器

8.站點伺服器應答請求,将内容傳回給用戶端.

CDN通路過程

前端cdn加速如何實作_前端必知必會: CDN加速原理一、什麼是 CDN二、CDN工作原理三、名詞解釋

通過上圖,我們可以了解到,使用了CDN緩存後的網站的通路過程變為:

1.使用者輸入通路的域名,作業系統向 LocalDns 查詢域名的ip位址.

2.LocalDns向 ROOT DNS 查詢域名的授權伺服器(這裡假設LocalDns緩存過期)

3.ROOT DNS将域名授權dns記錄回應給 LocalDns

4.LocalDns得到域名的授權dns記錄後,繼續向域名授權dns查詢域名的ip位址

5.域名授權dns 查詢域名記錄後(一般是CNAME),回應給 LocalDns

6.LocalDns 得到域名記錄後,向智能排程DNS查詢域名的ip位址

7.智能排程DNS 根據一定的算法和政策(比如靜态拓撲,容量等),将最适合的CDN節點ip位址回應給 LocalDns

8.LocalDns 将得到的域名ip位址,回應給 使用者端

9.使用者得到域名ip位址後,通路站點伺服器

10.CDN節點伺服器應答請求,将内容傳回給用戶端.(緩存伺服器一方面在本地進行儲存,以備以後使用,二方面把擷取的資料傳回給用戶端,完成資料服務過程)

通過以上的分析我們可以得到,為了實作對普通使用者透明(使用緩存後使用者用戶端無需進行任何設定)通路,需要使用DNS(域名解析)來引導使用者來通路Cache伺服器,以實作透明的加速服務. 由于使用者通路網站的第一步就是域名解析,是以通過修改dns來引導使用者通路是最簡單有效的方式.

CDN網絡的組成要素

對于普通的Internet使用者,每個CDN節點就相當于一個放置在它周圍的網站伺服器. 通過對dns的接管,使用者的請求被透明地指向離他最近的節點,節點中CDN伺服器會像網站的原始伺服器一樣,響應使用者的請求. 由于它離使用者更近,因而響應時間必然更快.

從上面圖中 虛線圈起來的那塊,就是CDN層,這層是位于 使用者端 和 站點伺服器 之間.

  • 智能排程DNS(比如f5的3DNS)

    智能排程DNS是CDN服務中的關鍵系統.當使用者通路加入CDN服務的網站時,域名解析請求将最終由 “智能排程DNS”負責處理。它通過一組預先定義好的政策,将當時最接近使用者的節點位址提供給使用者,使使用者可以得到快速的服務。同時它需要與分布在各地的CDN節點保持通信,跟蹤各節點的健康狀态、容量等資訊,確定将使用者的請求配置設定到就近可用的節點上.

  • 緩存功能服務

    負載均衡裝置(如lvs,F5的BIG/IP)

    内容Cache伺服器(如squid)

    共享存儲

三、名詞解釋

CNAME記錄(CNAME record)

CNAME即别名( Canonical Name );可以用來把一個域名解析到另一個域名,當 DNS 系統在查詢 CNAME 左面的名稱的時候,都會轉向 CNAME 右面的名稱再進行查詢,一直追蹤到最後的 PTR 或 A 名稱,成功查詢後才會做出回應,否則失敗。

例如,你有一台伺服器上存放了很多資料,你使用

docs.example.com

去通路這些資源,但又希望通過

documents.example.com

也能通路到這些資源,那麼你就可以在您的DNS解析服務商添加一條CNAME記錄,将

documents.example.com

指向

docs.example.com

,添加該條CNAME記錄後,所有通路

documents.example.com

的請求都會被轉到

docs.example.com

,獲得相同的内容。

CNAME域名

接入CDN時,在CDN提供商控制台添加完加速域名後,您會得到一個CDN給您配置設定的CNAME域名, 您需要在您的DNS解析服務商添加CNAME記錄,将自己的加速域名指向這個CNAME域名,這樣該域名所有的請求才會都将轉向CDN的節點,達到加速效果。

DNS

DNS即Domain Name System,是域名解析服務的意思。它在網際網路的作用是:把域名轉換成為網絡可以識别的ip位址。人們習慣記憶域名,但機器間互相隻認IP位址,域名與IP位址之間是一一對應的,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析伺服器來完成,整個過程是自動進行的。比如:上網時輸入的

www.baidu.com

會自動轉換成為

220.181.112.143

常見的DNS解析服務商有:阿裡雲解析,萬網解析,DNSPod,新網解析,Route53(AWS),Dyn,Cloudflare等。

回源host

回源host:回源host決定回源請求通路到源站上的具體某個站點。

例子1:源站是域名源站為

www.a.com

,回源host為

www.b.com

,那麼實際回源是請求到

www.a.com

解析到的IP,對應的主機上的站點

www.b.com

例子2:源站是IP源站為

1.1.1.1

, 回源host為

www.b.com

,那麼實際回源的是

1.1.1.1

對應的主機上的站點

www.b.com

協定回源

指回源時使用的協定和用戶端通路資源時的協定保持一緻,即如果用戶端使用 HTTPS 方式請求資源,當CDN節點上未緩存該資源時,節點會使用相同的 HTTPS 方式回源擷取資源;同理如果用戶端使用 HTTP 協定的請求,CDN節點回源時也使用HTTP協定。

前端cdn加速如何實作_前端必知必會: CDN加速原理一、什麼是 CDN二、CDN工作原理三、名詞解釋

前端妹拍了拍你說:

記得戳小花花哦~

前端cdn加速如何實作_前端必知必會: CDN加速原理一、什麼是 CDN二、CDN工作原理三、名詞解釋
前端cdn加速如何實作_前端必知必會: CDN加速原理一、什麼是 CDN二、CDN工作原理三、名詞解釋

曆史回顧:如何将Canvas繪制過程轉為視訊打破國外壟斷!華為被曝自研程式設計語言“倉颉”,南大教授馮新宇領銜 JS 原生面經從初級到進階(近1.5萬字)千萬别踩程式員,萬茜被盜号迎反轉五分鐘了解 Node.js Shebang15條你可能不知道的JS高效技巧

喜歡本文的朋友們,歡迎長按下圖關注訂閱号前端技術精選

收看更多精彩内容

前端cdn加速如何實作_前端必知必會: CDN加速原理一、什麼是 CDN二、CDN工作原理三、名詞解釋

你在看嗎?一起成長