CDN基础知识-CNAME、加速域名、源站地址与回源host之间的关系
CDN原理
1. CNAME
首先需要了解,CNAME 是什么東西。
1.1 A記錄
即Address記錄,它并不是一個(gè)IP或者一個(gè)域名,我們可以把它理解為一種指向關(guān)系:
域名 www.xx.com → 111.111.111.111
主機(jī)名 DD → 222.222.222.222
可以理解為,最終的域名與IP的對應(yīng)關(guān)系這條記錄,就是A記錄
1.2 CNAME
為什么要區(qū)分A記錄和CNAME?我們可以把CNAME記錄叫做別名記錄,就是小名
比如A記錄為:
www.baidu.com → 111.111.111.111
那么可能有多個(gè)CNAME記錄
www.100fen.com → www.baidu.com
www.baifen.com → www.baidu.com
所以大概理解了吧,CNAME就是你主域名A記錄的小名
CNAME指向A記錄,A記錄指向具體的IP地址。
一個(gè)網(wǎng)址可以有多個(gè)CNAME,可以理解為就是域名轉(zhuǎn)發(fā)
2. 加速域名
加速域名是接入CDN的域名,例如使用www.baidu.com域名接入CDN,那么加速域名就是www.baidu.com
3. 源站地址
顧名思義,就是用戶的源站主機(jī)地址。
當(dāng)選擇自建源時(shí),源站地址也有兩種類型:域名(一個(gè))和IP地址(可多個(gè)),并且都支持端口。
-
源站類型:自建源
-
源站地址:115.115.115.115
-
源站類型:自建源
-
源站地址:115.115.115.115:8080
-
源站類型:自建源
-
源站地址:source.baidu.com
-
源站類型:自建源
-
源站地址:source.baidu.com:8080
源站地址填寫為域名最大的好處是,當(dāng)你的源站擁有多個(gè)運(yùn)營商的IP,例如source.baidu.com有三個(gè)A記錄,分別是100.100.100.100(電信)、101.101.101.101(聯(lián)通)、102.102.102.102(移動(dòng)),那么當(dāng)CDN回源時(shí),會(huì)根據(jù)用戶的來源運(yùn)營商選擇對應(yīng)的A記錄。當(dāng)訪問者為電信用戶,回源時(shí)則會(huì)選擇100.100.100.100(電信)來回源,這樣就可以避免跨運(yùn)營商回源,造成回源延遲等問題。
注意:如果源站地址填寫為域名時(shí),此域名的作用僅僅是用于DNS解析,例如source.baidu.com對應(yīng)的A記錄為100.100.100.100,那最終源站地址則是100.100.100.100。
建議:能選擇源站地址為域名最好是選擇為域名。
4. 回源host
回源host也可以說是回源域名,比如源站擁有多個(gè)站點(diǎn):bbs.baidu.com、blog.baidu.com、api.baidu.com,那回源host就是指定到哪個(gè)站點(diǎn)上獲取資源,具體詳情參考以下幾個(gè)示例。
-
源站類型:自建源
-
源站地址:115.115.115.115
-
回源host:blog.baidu.com
當(dāng)CDN回源時(shí),會(huì)到115.115.115.115這臺(tái)主機(jī)上的blog.baidu.com站點(diǎn)拉取資源。
-
源站類型:自建源
-
源站地址:115.115.115.115
-
回源host:api.baidu.com
當(dāng)CDN回源時(shí),會(huì)到115.115.115.115這臺(tái)主機(jī)上的api.baidu.com站點(diǎn)拉取資源。
注意:如果填寫的回源host在源站上不存在時(shí),則會(huì)到源站上的默認(rèn)站點(diǎn)拉取資源。
建議:當(dāng)源站擁有多個(gè)站點(diǎn)時(shí),一定要選擇正確的域名,否則CDN拉取到的資源可能不是你想要的。
DNS和CDN整體流程的總結(jié)
比如我們請求 www.baidu.com 域名
首先,瀏覽器會(huì)從自身的DNS緩存中去查找(chrome://net-internals/#dns),如果沒有則進(jìn)行下一步
然后,瀏覽器會(huì)先從操作系統(tǒng)里的DNS緩存中找,windows系統(tǒng)中,命令行 ipconfig/displaydns 查看,linux上的NSCD緩存服務(wù);如果沒有則進(jìn)行下一步
從計(jì)算機(jī)host文件里找;如果沒有則進(jìn)行下一步
請求本地域名服務(wù)器(可以認(rèn)為是 阿里云等域名供應(yīng)商),
發(fā)現(xiàn)阿里云里面有進(jìn)行過配置,CNMAE記錄: www.baidu.com → cdn.baidu.com ,所以此時(shí)告訴瀏覽器轉(zhuǎn)為請求 cdn.baidu.com
此時(shí),瀏覽器轉(zhuǎn)為請求cdn.baidu.com ,上面的1-3步還得再來一遍。
1-3步驟重復(fù)
請求本地域名服務(wù)器(可以認(rèn)為是 阿里云等域名供應(yīng)商),發(fā)現(xiàn)阿里云里面有進(jìn)行過配置,A記錄:cdn.baidu.com → 222.222.222.222 ,然后就把 IP 222.222.222.222 返回給瀏覽器。
瀏覽器得到了IP地址,注意這個(gè)IP地址,實(shí)際上是CDN負(fù)載均衡服務(wù)器的地址。繼續(xù)請求這個(gè)地址
請求進(jìn)入到了CDN負(fù)載均衡服務(wù)器后,服務(wù)器會(huì)根據(jù)算法策略等,返回一個(gè)最合適的文件緩存服務(wù)器IP地址,至于怎么選擇合適的,看下面的優(yōu)化
瀏覽器訪問文件緩存服務(wù)器IP地址,最后得到文件資源
附加題目
題目:加速域名為:www.baidu.com,源站地址填寫為域名:source.baidu.com,并且此域名擁有三個(gè)IP:100.100.100.100(電信)、101.101.101.101(聯(lián)通)、102.102.102.102(移動(dòng)),回源host為blog.baidu.com。
問題一:請將回源步驟描述下。
問題二:當(dāng)訪問者是聯(lián)通用戶時(shí),請將回源步驟描述下。
問題三:當(dāng)源站不存在blog.baidu.com站點(diǎn)時(shí),請將回源步驟描述下。
問題四:當(dāng)訪問者是教育網(wǎng)用戶時(shí),請將回源步驟描述下。
附加答案
先將source.baidu.com域名做DNS解析,得到具體的IP地址(100.100.100.100)。
CDN使用回源host(blog.baidu.com)到100.100.100.100這臺(tái)主機(jī)上拉取blog.baidu.com站點(diǎn)的資源。
blog.baidu.com站點(diǎn)返回資源給CDN。
回源流程:訪問者(www.baidu.com) -> CDN(回源) -> blog.baidu.com(100.100.100.100) -> CDN(返回資源) -> 訪問者(獲取資源)
先將source.baidu.com域名做DNS解析,得到101.101.101.101(CDN會(huì)幫其選擇最優(yōu)的IP,因?yàn)樵L問者是聯(lián)通用戶,當(dāng)然是到聯(lián)通IP回源更好,這樣就不會(huì)出現(xiàn)跨運(yùn)營商問題)。
CDN使用回源host(blog.baidu.com)到101.101.101.101這臺(tái)主機(jī)上拉取blog.baidu.com站點(diǎn)的資源。
blog.baidu.com站點(diǎn)返回資源給CDN。
回源流程:訪問者(www.baidu.com) -> CDN(回源) -> blog.baidu.com(101.101.101.101) -> CDN(返回資源) -> 訪問者(獲取資源)
先將source.baidu.com域名做DNS解析,得到具體的IP地址(100.100.100.100)。
CDN使用回源host(blog.baidu.com)到100.100.100.100這臺(tái)主機(jī)上拉取默認(rèn)站點(diǎn)的資源。
100.100.100.100這臺(tái)主機(jī)的默認(rèn)站點(diǎn)返回資源給CDN。
回源流程:訪問者(www.baidu.com) -> CDN(回源) -> blog.baidu.com(100.100.100.100) -> CDN(返回資源) -> 訪問者(獲取資源)
先將source.baidu.com域名做DNS解析,得到具體的IP地址102.102.102.102(因?yàn)樵凑緵]有合適對應(yīng)的教育網(wǎng)運(yùn)營商IP,所以CDN會(huì)自動(dòng)幫其選擇最優(yōu)的IP,至于哪個(gè)是最優(yōu)的就無法直接斷定了,交由CDN判斷)。
CDN使用回源host(blog.baidu.com)到102.102.102.102這臺(tái)主機(jī)上拉取默認(rèn)站點(diǎn)的資源。
blog.baidu.com站點(diǎn)返回資源給CDN。
回源流程:訪問者(www.baidu.com) -> CDN(回源) -> blog.baidu.com(102.102.102.102) -> CDN(返回資源) -> 訪問者(獲取資源)
六、結(jié)論總結(jié)
加速域名為用戶接入的CDN域名。
源站地址為用戶的源站,當(dāng)源站地址為域名時(shí),此域名僅用于做DNS解析。
當(dāng)源站擁有多個(gè)站點(diǎn),回源時(shí)則選擇回源host指定站點(diǎn)拉取資源。
當(dāng)源站不存在回源host域名時(shí),則到源站的默認(rèn)站點(diǎn)拉取資源。
參考鏈接:
https://juejin.im/post/6854573212425814030
https://cloud.tencent.com/developer/article/1195058
總結(jié)
以上是生活随笔為你收集整理的CDN基础知识-CNAME、加速域名、源站地址与回源host之间的关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bootstrap4.0图标使用_Boo
- 下一篇: .net EF框架—增删改查—ajax删