傳統的網絡訪問形式爲:
由上圖可見,用戶訪問未使用CDN緩存網站的過程爲:
- 用戶向瀏覽器提供要訪問的域名;
- 瀏覽器調用域名解析函數庫對域名進行解析,以得到此域名對應的IP地址;
- 瀏覽器使用所得到的IP地址,域名的服務主機發出數據訪問請求;
- 瀏覽器根據域名主機返回的數據顯示網頁的內容。
通過以上四個步驟,瀏覽器完成從用戶處接收用戶要訪問的域名到從域名服務主機處獲取數據的整個過程。CDN網絡是在用戶和服務器之間增加Cache層,如何將用戶的請求引導到Cache上獲得源服務器的數據,主要是通過接管DNS實現,下面讓我們看看訪問使用CDN緩存後的網站的過程:
CDN客戶使用CDN的方法:
對於CDN客戶來說,不需要改動網站架構,只需要修改自己的DNS解析,設置一個CNAME指向CDN服務商即可。原理在下面會解釋
通過上圖,我們可以瞭解到,使用了CDN緩存後的網站的訪問過程變爲:
- 用戶向瀏覽器提供要訪問的域名;
- 瀏覽器調用域名解析庫對域名進行解析,由於CDN對域名解析過程進行了調整,所以解析函數庫得到的是該域名對應的CNAME記錄(由於現在已經是使用了CDN服務,CNAME爲CDN服務商域名),爲了得到實際IP地址,瀏覽器需要再次對獲得的CNAME域名進行解析以得到實際的IP地址;在此過程中,使用的全局負載均衡DNS解析,如根據地理位置信息解析對應的IP地址,使得用戶能就近訪問。(CDN服務來提供最近的機器)
- 此次解析得到CDN緩存服務器的IP地址,瀏覽器在得到實際的IP地址以後,向緩存服務器發出訪問請求;
- 緩存服務器根據瀏覽器提供的要訪問的域名,通過Cache內部專用DNS解析得到此域名的實際IP地址,再由緩存服務器向此實際IP地址提交訪問請求;
- 緩存服務器從實際IP地址得得到內容以後,一方面在本地進行保存,以備以後使用,二方面把獲取的數據返回給客戶端,完成數據服務過程;
- 客戶端得到由緩存服務器返回的數據以後顯示出來並完成整個瀏覽的數據請求過程。
概念解析:
CNAME(Canonical Name)指別名記錄也被稱爲規範名字,CNAME可以理解爲對域名設置別名。比如一個域名www.domain.com,設置一個CNAME指向它,由於www.domain.com與一個ip進行綁定,如果設置多個CNAME指向它,以後修改CNAME指向的服務器時,只需要修改一個www.domain.com對應的ip即可。詳細可以參考dns一些名詞解釋