<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【拓展】701- 前端需知:CDN 加速原理

          共 2921字,需瀏覽 6分鐘

           ·

          2020-08-31 23:33



          一、什么是 CDN

          CDN的全稱(chēng)是(Content Delivery Network),即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是通過(guò)在現(xiàn)有的Internet中增加一層新的CACHE(緩存)層,將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶(hù)的網(wǎng)絡(luò)”邊緣“的節(jié)點(diǎn),使用戶(hù)可以就近取得所需的內(nèi)容,提高用戶(hù)訪問(wèn)網(wǎng)站的響應(yīng)速度。從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶(hù)訪問(wèn)量大、網(wǎng)點(diǎn)分布不均等原因,提高用戶(hù)訪問(wèn)網(wǎng)站的響應(yīng)速度。
          簡(jiǎn)單的說(shuō),CDN的工作原理就是將您源站的資源緩存到位于全球各地的CDN節(jié)點(diǎn)上,用戶(hù)請(qǐng)求資源時(shí),就近返回節(jié)點(diǎn)上緩存的資源,而不需要每個(gè)用戶(hù)的請(qǐng)求都回您的源站獲取,避免網(wǎng)絡(luò)擁塞、緩解源站壓力,保證用戶(hù)訪問(wèn)資源的速度和體驗(yàn)

          CDN對(duì)網(wǎng)絡(luò)的優(yōu)化作用主要體現(xiàn)在如下幾個(gè)方面


          • 解決服務(wù)器端的“第一公里”問(wèn)題

          • 緩解甚至消除了不同運(yùn)營(yíng)商之間互聯(lián)的瓶頸造成的影響

          • 減輕了各省的出口帶寬壓力

          • 緩解了骨干網(wǎng)的壓力

          • 優(yōu)化了網(wǎng)上熱點(diǎn)內(nèi)容的分布


          二、CDN工作原理


          傳統(tǒng)訪問(wèn)過(guò)程



          由上圖可見(jiàn),用戶(hù)訪問(wèn)未使用CDN緩存網(wǎng)站的過(guò)程為:


          1.用戶(hù)輸入訪問(wèn)的域名,操作系統(tǒng)向 LocalDns 查詢(xún)域名的ip地址.
          2.LocalDns向 ROOT DNS 查詢(xún)域名的授權(quán)服務(wù)器(這里假設(shè)LocalDns緩存過(guò)期)
          3.ROOT DNS將域名授權(quán)dns記錄回應(yīng)給 LocalDns
          4.LocalDns得到域名的授權(quán)dns記錄后,繼續(xù)向域名授權(quán)dns查詢(xún)域名的ip地址
          5.域名授權(quán)dns 查詢(xún)域名記錄后,回應(yīng)給 LocalDns
          6.LocalDns 將得到的域名ip地址,回應(yīng)給 用戶(hù)端
          7.用戶(hù)得到域名ip地址后,訪問(wèn)站點(diǎn)服務(wù)器
          8.站點(diǎn)服務(wù)器應(yīng)答請(qǐng)求,將內(nèi)容返回給客戶(hù)端.

          CDN訪問(wèn)過(guò)程




          通過(guò)上圖,我們可以了解到,使用了CDN緩存后的網(wǎng)站的訪問(wèn)過(guò)程變?yōu)椋?/strong>


          1.用戶(hù)輸入訪問(wèn)的域名,操作系統(tǒng)向 LocalDns 查詢(xún)域名的ip地址.
          2.LocalDns向 ROOT DNS 查詢(xún)域名的授權(quán)服務(wù)器(這里假設(shè)LocalDns緩存過(guò)期)
          3.ROOT DNS將域名授權(quán)dns記錄回應(yīng)給 LocalDns
          4.LocalDns得到域名的授權(quán)dns記錄后,繼續(xù)向域名授權(quán)dns查詢(xún)域名的ip地址
          5.域名授權(quán)dns 查詢(xún)域名記錄后(一般是CNAME),回應(yīng)給 LocalDns
          6.LocalDns 得到域名記錄后,向智能調(diào)度DNS查詢(xún)域名的ip地址
          7.智能調(diào)度DNS 根據(jù)一定的算法和策略(比如靜態(tài)拓?fù)洌萘康?,將最適合的CDN節(jié)點(diǎn)ip地址回應(yīng)給 LocalDns
          8.LocalDns 將得到的域名ip地址,回應(yīng)給 用戶(hù)端
          9.用戶(hù)得到域名ip地址后,訪問(wèn)站點(diǎn)服務(wù)器
          10.CDN節(jié)點(diǎn)服務(wù)器應(yīng)答請(qǐng)求,將內(nèi)容返回給客戶(hù)端.(緩存服務(wù)器一方面在本地進(jìn)行保存,以備以后使用,二方面把獲取的數(shù)據(jù)返回給客戶(hù)端,完成數(shù)據(jù)服務(wù)過(guò)程)


          通過(guò)以上的分析我們可以得到,為了實(shí)現(xiàn)對(duì)普通用戶(hù)透明(使用緩存后用戶(hù)客戶(hù)端無(wú)需進(jìn)行任何設(shè)置)訪問(wèn),需要使用DNS(域名解析)來(lái)引導(dǎo)用戶(hù)來(lái)訪問(wèn)Cache服務(wù)器,以實(shí)現(xiàn)透明的加速服務(wù). 由于用戶(hù)訪問(wèn)網(wǎng)站的第一步就是域名解析,所以通過(guò)修改dns來(lái)引導(dǎo)用戶(hù)訪問(wèn)是最簡(jiǎn)單有效的方式.


          CDN網(wǎng)絡(luò)的組成要素


          對(duì)于普通的Internet用戶(hù),每個(gè)CDN節(jié)點(diǎn)就相當(dāng)于一個(gè)放置在它周?chē)木W(wǎng)站服務(wù)器. 通過(guò)對(duì)dns的接管,用戶(hù)的請(qǐng)求被透明地指向離他最近的節(jié)點(diǎn),節(jié)點(diǎn)中CDN服務(wù)器會(huì)像網(wǎng)站的原始服務(wù)器一樣,響應(yīng)用戶(hù)的請(qǐng)求. 由于它離用戶(hù)更近,因而響應(yīng)時(shí)間必然更快.


          從上面圖中 虛線圈起來(lái)的那塊,就是CDN層,這層是位于 用戶(hù)端 和 站點(diǎn)服務(wù)器 之間.


          • 智能調(diào)度DNS(比如f5的3DNS)
            智能調(diào)度DNS是CDN服務(wù)中的關(guān)鍵系統(tǒng).當(dāng)用戶(hù)訪問(wèn)加入CDN服務(wù)的網(wǎng)站時(shí),域名解析請(qǐng)求將最終由 “智能調(diào)度DNS”負(fù)責(zé)處理。它通過(guò)一組預(yù)先定義好的策略,將當(dāng)時(shí)最接近用戶(hù)的節(jié)點(diǎn)地址提供給用戶(hù),使用戶(hù)可以得到快速的服務(wù)。同時(shí)它需要與分布在各地的CDN節(jié)點(diǎn)保持通信,跟蹤各節(jié)點(diǎn)的健康狀態(tài)、容量等信息,確保將用戶(hù)的請(qǐng)求分配到就近可用的節(jié)點(diǎn)上.

          • 緩存功能服務(wù)
            負(fù)載均衡設(shè)備(如lvs,F5的BIG/IP)
            內(nèi)容Cache服務(wù)器(如squid)
            共享存儲(chǔ)


          三、名詞解釋


          CNAME記錄(CNAME record)


          CNAME即別名( Canonical Name );可以用來(lái)把一個(gè)域名解析到另一個(gè)域名,當(dāng) DNS 系統(tǒng)在查詢(xún) CNAME 左面的名稱(chēng)的時(shí)候,都會(huì)轉(zhuǎn)向 CNAME 右面的名稱(chēng)再進(jìn)行查詢(xún),一直追蹤到最后的 PTR 或 A 名稱(chēng),成功查詢(xún)后才會(huì)做出回應(yīng),否則失敗。


          例如,你有一臺(tái)服務(wù)器上存放了很多資料,你使用docs.example.com去訪問(wèn)這些資源,但又希望通過(guò)documents.example.com也能訪問(wèn)到這些資源,那么你就可以在您的DNS解析服務(wù)商添加一條CNAME記錄,將documents.example.com指向docs.example.com,添加該條CNAME記錄后,所有訪問(wèn)documents.example.com的請(qǐng)求都會(huì)被轉(zhuǎn)到docs.example.com,獲得相同的內(nèi)容。


          CNAME域名


          接入CDN時(shí),在CDN提供商控制臺(tái)添加完加速域名后,您會(huì)得到一個(gè)CDN給您分配的CNAME域名, 您需要在您的DNS解析服務(wù)商添加CNAME記錄,將自己的加速域名指向這個(gè)CNAME域名,這樣該域名所有的請(qǐng)求才會(huì)都將轉(zhuǎn)向CDN的節(jié)點(diǎn),達(dá)到加速效果。


          DNS


          DNS即Domain Name System,是域名解析服務(wù)的意思。它在互聯(lián)網(wǎng)的作用是:把域名轉(zhuǎn)換成為網(wǎng)絡(luò)可以識(shí)別的ip地址。人們習(xí)慣記憶域名,但機(jī)器間互相只認(rèn)IP地址,域名與IP地址之間是一一對(duì)應(yīng)的,它們之間的轉(zhuǎn)換工作稱(chēng)為域名解析,域名解析需要由專(zhuān)門(mén)的域名解析服務(wù)器來(lái)完成,整個(gè)過(guò)程是自動(dòng)進(jìn)行的。比如:上網(wǎng)時(shí)輸入的www.baidu.com會(huì)自動(dòng)轉(zhuǎn)換成為220.181.112.143


          常見(jiàn)的DNS解析服務(wù)商有:阿里云解析,萬(wàn)網(wǎng)解析,DNSPod,新網(wǎng)解析,Route53(AWS),Dyn,Cloudflare等。


          回源host


          回源host:回源host決定回源請(qǐng)求訪問(wèn)到源站上的具體某個(gè)站點(diǎn)。

          例子1:源站是域名源站為www.a.com,回源host為www.b.com,那么實(shí)際回源是請(qǐng)求到www.a.com解析到的IP,對(duì)應(yīng)的主機(jī)上的站點(diǎn)www.b.com

          例子2:源站是IP源站為1.1.1.1, 回源host為www.b.com,那么實(shí)際回源的是1.1.1.1對(duì)應(yīng)的主機(jī)上的站點(diǎn)www.b.com


          協(xié)議回源


          指回源時(shí)使用的協(xié)議和客戶(hù)端訪問(wèn)資源時(shí)的協(xié)議保持一致,即如果客戶(hù)端使用 HTTPS 方式請(qǐng)求資源,當(dāng)CDN節(jié)點(diǎn)上未緩存該資源時(shí),節(jié)點(diǎn)會(huì)使用相同的 HTTPS 方式回源獲取資源;同理如果客戶(hù)端使用 HTTP 協(xié)議的請(qǐng)求,CDN節(jié)點(diǎn)回源時(shí)也使用HTTP協(xié)議。


          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美大屌在线视频 | 手机在线看a | 操逼首页123 | 亚洲毛片在线视频 | 青春草在线视频观看 |