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