CDN原理與使用

一、概述

背景:

當下的互聯網應用都包含大量的靜態內容,但靜態內容以及一些準動態內容又是最耗費帶寬的,特別是針對全國甚至全世界的大型網站,如果這些請求都指向主站的服務器的話,不僅是主站服務器受不了,單端口500M左右的帶寬也扛不住,所以大多數網站都需要CDN服務。

CDN,Content Delivery Network:基於內容的分佈式分發網絡。 簡單的說CDN就是讓原本上海的瀏覽器要訪問北京主站內容的請求轉而由部署在上海或南京的緩存來受理,這樣請求的數據只需經過一跳或有限的幾跳就能到達請求端,有效利用帶寬並且降低主站壓力,對於電子商務網站和搜索引擎網站以及門戶網站,CDN的合理應用顯得尤爲重要。

一般需要CDN服務的網站會選擇以下的組織方案:

  1. 通過租用的IDC提供額外的CDN服務;
  2. 購買專業的CDN服務商的服務;
  3. 自己組建CDN網絡;

成本依次增高。

CDN設計目的是實現WEB內容的負載均衡,防止出現訪問請求熱點,延時響應等WEB請求通病。基於此,CDN的特點可以說有:

  1. 分佈式存儲
  2. 通過智能 DNS解析http重定 向實現內容分發的負載均衡
  3. 全局負載均衡管理與內容管理

二、原理

2.1 網絡結構

CDN網絡一般分爲中心邊緣節點兩部分,中心負責全局負載均衡內容管理。中心節點的功能如下:

  • 隨時監控邊緣節點的健康狀況(可用性,擁塞程度);
  • 根據邊緣節點到請求端的距離,以及邊緣節點的健康狀況,按一定的策略重定向請求;
  • 與客戶主站進行數據同步。

負責爲用戶提供內容服務的cache設備應部署在物理上的網絡邊緣位置,即CDN邊緣層。CDN系統中負責全局性管理和控制的設備組成中心層(二級緩存),中心層同時保存着最多的內容副本,當邊緣層設備未命中時,會向中心層請求,如果在中心層仍未命中,則需要中心層向源站 回源。(如果是流媒體,代價很大)

CDN**骨幹點和CDN **POP點在功能上不同,中心和區域節點一般稱爲骨幹點,主要作爲內容分發和邊緣未命中時的服務點;邊緣節點又被稱爲POP(point of presence)節點,CDN POP點主要作爲直接向用戶提供服務的節點。


2.2 CDN的效果

傳統的未加緩存服務的訪問過程:

  1. 用戶向瀏覽器提供要訪問的域名;
  2. 瀏覽器調用域名解析函數庫對域名進行解析,以得到此域名對應的IP地址;
  3. 瀏覽器使用所得到的IP地址向的服務主機發出數據訪問請求;
  4. 瀏覽器根據域名主機返回的數據顯示網頁的內容。

CDN網絡是在用戶和服務器之間增加Cache層, 如何將用戶的請求引導到Cache上獲得源服務器的數據,主要是通過接管DNS實現,訪問使用CDN緩存後的網站的過程:

  1. 用戶向瀏覽器提供要訪問的域名。
  2. 瀏覽器調用域名解析庫對域名進行解析,由於CDN對域名解析過程進行了調整,所以解析函數庫一般得到的是該域名對應的CNAME記錄,爲了得到實 際IP地址,瀏覽器需要再次對獲得的CNAME域名進行解析以得到實際的IP地址;在此過程中,使用的全局負載均衡DNS解析,如根據地理位置信息解析對應的IP地址,使得用戶能就近訪問。
  3. 此次解析得到CDN緩存服務器的IP地址,瀏覽器在得到實際的IP地址以後,向緩存服務器發出訪問請求。
  4. 緩存服務器根據瀏覽器提供的要訪問的域名,通過Cache**內部專用DNS解析**得到此域名的實際IP地址,再由緩存服務器向此實際IP地址提交訪問請求。
  5. 緩存服務器從實際IP地址得得到內容以後,一方面在本地進行保存,以備以後使用,二方面把獲取的數據返回給客戶端,完成數據服務過程。

2.3 A記錄和CNAME記錄

(1)什麼是域名解析?
域名解析就是國際域名或者國內域名以及中文域名等域名申請後做的到IP地址的轉換過程。IP地址是網路上標識站點的數字地址,爲了簡單好記,採用域名來代替ip地址標識站點地址。域名的解析工作由DNS服務器完成。

(2)什麼是A記錄?
A (Address) 記錄是用來指定域名對應的IP地址記錄。用戶可以將該域名下的網站服務器指向到自己的web server上。

A記錄是IP解析,直接將域名指向某個IP,如果IP有所變動,那麼A記錄那邊也必須更改。

(3)什麼是CNAME記錄?
別名記錄。這種記錄允許我們將多個域名映射到另外一個域名。通常用於同時提供WWW和MAIL服務的計算機。例如,有一臺計算機名爲“host.mydomain.com”(A記錄)。它同時提供WWW和MAIL服務,爲了便於用戶訪問服務。可以爲該計算機設置兩個別名(CNAME):WWW和MAIL。這兩個別名的全稱就 http://www.mydomain.com/mail.mydomain.com。實際上他們都指向host.mydomain.com

CNAME是別名解析,別名解析是先將域名解析到另一個域名再轉跳到IP。

(4)使用A記錄和CNAME進行域名解析的區別
A記錄就是把一個域名解析到一個IP地址(Address,特製數字IP地址),而CNAME記錄就是把域名解析到另外一個域名。其功能是差不多,CNAME將幾個主機名指向一個別名,其實跟指向IP地址是一樣的,因爲這個別名也要做一個A記錄的。但是使用CNAME記錄可以很方便地變更IP地址。

如果一臺服務器有100個網站,使用A記錄的情況下變更IP則需要修改100條A記錄;如果使用CNAME,該臺服務器變更IP時,只需要變更一條A記錄就可以了。


2.4 動態資源加速

動態緩存一般是對鏈路進行緩存,用到動態路由和協議棧優化等,不是傳統的靜態加速,所謂的全站加速是指靜態內容可以緩存,其它交互內容還是要回源。

CDN給動態網站加速使用以下技術加速了動態資產的交付:

  1. 路由優化
  2. TCP優化

路由優化是非常重要的,因爲互聯網是一個動態的網絡,流量會不斷地改變網絡拓撲。邊界網關協議(BGP)是Internet的路由協議,但通過中間點(PoP)服務器可能會有更快的路由。 路由優化選擇到達原點的最佳路徑,以便站點可以連續訪問,動態內容通過儘可能最快,最可靠的路由傳送給最終用戶。


三、使用CDN服務(阿里雲)

本文檔將幫助你快速開始使用CDN服務,流程如下,請按步驟操作:
這裏寫圖片描述

步驟 1:開通CDN服務

  1. 在阿里雲官網CDN產品詳情頁快速瞭解產品,之後單擊 立即開通。
  2. 在購買頁面選擇適合計費方式,確認訂單,CDN服務即開通。接下來就能開始接入您要加速的域名了。

步驟 2:添加加速域名

1.登錄 CDN控制檯 ,選擇域名管理,這個頁面可以查看您添加的所有加速域名和狀態。點擊 添加域名
這裏寫圖片描述

2.填寫基本信息:輸入加速域名(一般使用 子域名 或泛域名,例如 cdntest.example.com)、選擇合適的業務類型、源站。點擊下一步,等待審覈(源站爲阿里雲ECS、OSS可免審覈):

這裏寫圖片描述

業務類型說明:

阿里雲CDN調度系統會根據用戶選擇的不同業務類型做針對性的調度優化:

業務類型 說明
圖片小文件 若加速內容多爲 小型的靜態資源 (如小文件、圖片、網頁樣式文件等),推薦選擇“圖片小文件”業務類型。
大文件下載 若加速內容爲 較大的文件(大於20MB的靜態文件),例如遊戲安裝包、應用更新、手機ROM升級、應用程序包下載等場景,推薦選擇“大文件下載”業務類型。
視音頻點播 若大文件爲 音頻、視頻 文件,例如音樂、視頻的點播業務場景,推薦使用“視音頻點播”業務類型。
直播流媒體 提供 直播流媒體 加速服務,目前支持 RTMP 和 HLS 方式的直播加速,直播業務類型不支持自定義源站,目前統一提供直播中心服務器:video-center.alivecdn.com
全站加速 融合了 動態加速靜態加速,適用於動靜態內容混合、含較多 動態資源請求 的站點。通過簡單配置即可智能分別加速動靜態內容,靜態內容高速緩存,動態內容通過阿里雲的最優鏈路算法及協議層優化快速回源獲取。

源站類型說明:

源站類型 說明
IP 支持 多個 服務器外網 IP, 阿里雲ECS的IP可免審覈
源站域名 支持 多個 源站域名。注意:源站域名 不能 與加速域名相同,否則會造成循環解析,無法回源。例如您的 源站域名 爲img.yourdomain.com,則 加速域名 可設置爲cdn.yourdomain.com
OSS 可手動輸入 阿里雲OSS Bucket 的外網域名如:xxx.oss-cn-hangzhou.aliyuncs.com,OSS外網域名可前往 OSS控制檯 查看。也可直接選擇同賬號下的 OSS Bucket

注意:CDN 回源暫不支持 SNI

3.添加成功:加速域名審覈通過後,會出現在 域名管理 的域名列表中,狀態爲 正常運行 即添加成功。

注意:添加完加速域名後,阿里雲CDN會給您分配對應的CNAME地址,還需要 配置CNAME 後CDN服務才生效,請繼續參考下方步驟3


步驟 3:配置 CNAME

1.在控制檯 域名管理 的域名列表中複製加速域名對應的CNAME地址:
這裏寫圖片描述

2. 前往你的 域名解析(DNS)服務商(如萬網、阿里雲解析、DNSPod、新網、騰訊雲解析、route 53、godaddy等),添加該CNAME記錄。現提供以下服務商的示例:


驗證CDN服務是否生效

配置CNAME後,不同的服務商CNAME生效的時間也不同,一般新增的CNAME記錄會立即生效,修改的CNAME記錄會需要較長時間生效。您可以pingdig您所添加的加速域名,如果被解析至*.*kunlun*.com的域名,即表示CNAME配置已經生效,CDN功能也已生效:

這裏寫圖片描述

發佈了94 篇原創文章 · 獲贊 43 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章