在當下(xià)的互聯網應用中(zhōng)充斥了大(dà)量的靜态内容,這些靜态和準動态内容在訪問請求中(zhōng)占據了大(dà)量的網絡資(zī)源,如果這些請求全部指向源站服務器,很容易導緻網絡的擁塞甚至是服務器的宕機,對正常的業務開(kāi)展造成嚴重影響。爲了解決這種情況,CDN技術應運而生(shēng)。
什麽是CDN?
CDN的全稱是Content Delivery Network,即内容分(fēn)發網絡。CDN是構建在網絡之上的内容分(fēn)發網絡,依靠部署在各地的邊緣服務器,通過中(zhōng)心平台的負載均衡、内容分(fēn)發、調度等功能模塊,使用戶就近獲取所需内容,降低網絡擁塞,提高用戶訪問響應速度和命中(zhōng)率。
CDN的基本原理
CDN的基本原理是在用戶訪問相對集中(zhōng)的地區和網絡設置一(yī)些緩存服務器。當用戶訪問網站時,利用全局的負載均衡技術将用戶的訪問指向距離(lí)最近的緩存服務器,由緩存服務器代替源站響應用戶的訪問請求。這樣一(yī)方面減輕了源站服務器的工(gōng)作壓力,另一(yī)方面使用戶可就近取得所需内容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
CDN的工(gōng)作過程
(1)當用戶點擊網站頁面上的内容URL,本地解析系統會得到該域名的CNAME記錄,然後DNS系統将解析交給CNAME指向的CDN專用DNS服務器。
(2)CDN的DNS服務器将CDN的全局負載均衡設備IP地址返給用戶。
(3)用戶向CDN的全局負載均衡設備發起内容URL訪問請求。
(4)CDN全局負載均衡設備根據用戶IP地址,以及用戶請求的内容URL,選擇一(yī)台用戶所屬區域的負載均衡設備,告訴用戶向這台設備發起請求。
(5)區域負載均衡設備會爲用戶選擇一(yī)台合适的緩存服務器提供服務。
(6)全局負載均衡設備把服務器的IP地址返回給用戶。
(7)用戶向緩存服務器發起請求,緩存服務器響應用戶請求,将用戶所需内容傳送到用戶終端。
(8)如果這台緩存服務器上并沒有用戶想要的内容,那麽這台服務器就要向它的上一(yī)級緩存服務器請求内容,直至追溯到網站的源服務器将内容緩存到本地。
CDN有哪些作用?
CDN主要用于加速網站的訪問,除此之外(wài)還有其他一(yī)些作用:
1. 實現跨運營商(shāng)、跨地域的全網覆蓋
CDN通過和運營商(shāng)合作,部署IDC資(zī)源,在全國骨幹節點上合理部署CDN邊緣分(fēn)發存儲節點,充分(fēn)利用帶寬資(zī)源,平衡源站流量,實現跨域跨網的全覆蓋效果。
2. 保障網站安全
CDN的負載均衡和分(fēn)布式存儲技術,可以讓服務器源站“躲在”CDN節點背後免遭攻擊,相當于無形中(zhōng)爲網站添加了一(yī)把保護傘,有效提升網站的安全性和可靠性。
3. 異地備援
當某個服務器發生(shēng)意外(wài)故障時,CDN會調用其他鄰近的健康服務器節點進行服務,進而提供接近100%的可靠性,使網站處于永不宕機的狀态。
4.節約成本投入
CDN可以實現網站節點的全國鋪設,無需考慮購買服務器與後續的托管運維,也不用爲管理維護技術人員(yuán)而煩惱,節省人力、精力和财力。
CDN的應用場景
1.網站與應用加速
CDN可用于網站或者應用中(zhōng)大(dà)量靜态資(zī)源的加速分(fēn)發,如各類型圖片、html、css、js文件等,可以通過CDN緩存到邊緣節點上,當用戶訪問即可就近獲取,降低了用戶訪問時延同時緩解了源站壓力
2.視頻(pín)、大(dà)文件下(xià)載分(fēn)發加速
CDN可以針對各類文件、在線點播視頻(pín)提供下(xià)載、分(fēn)發加速,比如mp4、flv視頻(pín)文件或者單個文件大(dà)小(xiǎo)在20M以上的安裝包等文件,CDN可以搭配對象存儲OSS使用,提升回源速度,節約回源帶寬成本。
3.直播加速
CDN可以爲直播分(fēn)發提供流暢的播放(fàng)下(xià)行鏈路,借助負載均衡系統将主播端采集的音視頻(pín)數據推送到接近用戶的數千個邊緣節點,當觀衆端發起請求,可以就近取得資(zī)源,減少網絡抖動風險,增加直播鏈路穩定性和流暢性。
4.移動應用加速
CDN可以爲移動APP更新文件分(fēn)發,爲移動APP内圖片、頁面、短視頻(pín)、UGC等内容的優化提供加速分(fēn)發效果。同時可提供http DNS服務,避免DNS劫持并獲得實時精确的DNS解析結果,有效縮短用戶訪問時間,提升用戶體(tǐ)驗。
在今天的互聯網應用場景下(xià),CDN所承載内容越來越多,不僅僅是圖片、下(xià)載、視頻(pín)等靜态内容的分(fēn)發和就近接入等加速應用,CDN在減少寬帶成本、防止服務中(zhōng)斷、加強網站的安全性、增加内容可用性和冗餘等方面也發揮着重要作用,已經成爲了一(yī)項不可或缺的網絡基礎設施。