介紹 CDN
內容分發(fā)網(wǎng)絡(英語:Content Delivery Network 或 Content Distribution Network,縮寫:CDN)是建立并覆蓋在承載網(wǎng)上,由不同區(qū)域的服務器組成的分布式網(wǎng)絡。將源站資源緩存到全國各地的邊緣服務器,供用戶就近獲取,降低源站壓力。
CDN 基于這樣的原理:
- 挑選最優(yōu)的設備為用戶提供服務;
- 如果某個內容被很多用戶所需要,那么就將它緩存到距離用戶最近的節(jié)點中。
CDN 公司在整個互聯(lián)網(wǎng)上部署數(shù)以百計的 CDN 服務器(Cache),這些服務器通常在運營商的互聯(lián)網(wǎng)數(shù)據(jù)中心(Internet Data Center,IDC)中,盡量靠近接入網(wǎng)絡和用戶。CDN 在 Cache 中復制內容,當內容的提供者更新內容時,CDN 向 Cache 重新分發(fā)這些被刷新的內容。
CDN 提供一種機制,當用戶請求內容時,該內容能夠由以最快速度交付的 Cache 來向用戶提供,這個挑選 “最優(yōu)” 的過程就叫做負載均衡。被選中的最優(yōu) Cache 可能最靠近用戶,或者有一條與用戶之間條件最好的路徑。
CDN 的工作過程
使用 CDN 服務的網(wǎng)站是如何向用戶提供服務的呢?
基于 DNS 解析的 GSLB 系統(tǒng)是目前 CDN 服務商采用比較多的 GSLB 方案?;?DNS 解析的 GSLB 系統(tǒng)的實現(xiàn)又有幾種不同的方式:
- 通過 CNAME 方式實現(xiàn)負載均衡;
- 負載均衡器作為權威 DNS 服務器;
- 負載均衡器作為代理 DNS 服務器。
其中通過 CNAME 方式實現(xiàn)負載均衡是目前業(yè)界使用最多的方式。
通過 CNAME 方式實現(xiàn)負載均衡,一個用戶的訪問流程為:

當用戶在瀏覽器的地址欄中輸入 URL 并點擊回車后,瀏覽器首先判斷 URL 中的是 IP 地址,還是域名。如果 URL 中的是域名,那么首先要做的就是域名解析。
域名解析的過程:首先是瀏覽器查看瀏覽器的緩存。
- 1、2、3:如果瀏覽器中沒有該域名的緩存,那么瀏覽器詢問【本地 DNS 解析器】,【本地 DNS 解析器】首先查看本地 DNS 緩存。如果本地 DNS 緩存中沒有該域名的緩存,那么【本地 DNS 解析器】請求【本地 DNS 服務器】進行域名解析。
- 4、5、6:如果【本地 DNS 服務器】中沒有該域名的緩存,那么【本地 DNS 服務器】向 DNS 系統(tǒng)中的其他遠程 DNS 服務器發(fā)送查詢請求。
在 domain.com 域的域名服務器中,將 host.domain.com 域名的 CNAME 記錄設置為其他的域名(CDN 服務商的域名的子域名),比如設置為 host.domain.com.cdn.dnsv1.com。
- 7:【本地 DNS 服務器】獲取到 domain.com 域的域名服務器,向其發(fā)送 host.domain.com 域名解析請求, domain.com 域的域名服務器返回 CNAME 記錄,該 CNAME 記錄的值為 host.domain.com.cdn.dnsv1.com(CDN 服務商的域名的子域名)。
- 8:【本地 DNS 服務器】獲取到 cdn.dnsv1.com 域的域名服務器(CDN 專用的域名服務器),向其發(fā)送 host.domain.com.cdn.dnsv1.com 域名解析請求。
這樣就將網(wǎng)站域名的解析權交給了 CDN 專用的域名服務器,由 CDN 專用的域名服務器進行網(wǎng)站域名的解析。
- 9、10:【本地 DNS 服務器】收到域名的解析結果后,【本地 DNS 服務器】緩存數(shù)據(jù),并將解析結果返回給【本地 DNS 解析器】?!颈镜?DNS 解析器】緩存數(shù)據(jù),并將解析結果返回給【客戶端】。
- 11:【客戶端】緩存數(shù)據(jù),并向緩存服務器發(fā)送請求,緩存服務器響應【客戶端】的請求,將用戶所需的內容返回給【客戶端】。如果這臺緩存服務器上并沒有用戶想要的內容,那么這臺緩存服務器就要向它的上一級緩存服務器請求內容,直至追溯到網(wǎng)站的源服務器將內容拉到本地。
CDN 服務商的職責:CDN 專用的域名服務器將域名解析成緩存服務器的 IP 地址。
CDN 使用者的任務:使用 CDN 服務的網(wǎng)站,將網(wǎng)站域名的解析權交給 CDN 專用的域名服務器,再將需要分發(fā)的內容注入 CDN(或者由 CDN 拉?。涂梢詫崿F(xiàn)內容加速了。
CDN 的應用
CDN 可完成:內容緩存、負載均衡、流媒體加速、動態(tài)內容加速 等任務。
參考資料
《CDN 技術詳解》