CDN概況
CDN的全稱是Content Delivery Network,即內容分發網絡。
CND加速主要是加速靜態資源,如網站上面上傳的圖片、媒體,以及引入的一些Js、css等文件。
CND加速需要依靠各個網絡節點,例如100台CDN服務器分布在全國范圍,從上海訪問,會從最近的節點返回資源,這是核心。
CND服務器通過緩存或者主動抓取主服務器的內容來實現資源儲備。
一、什么是 CDN
CDN的全稱是(Content Delivery Network),即內容分發網絡。其目的是通過在現有的Internet中增加一層新的CACHE(緩存)層,將網站的內容發布到最接近用戶的網絡”邊緣“的節點,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。從技術上全面解決由於網絡帶寬小、用戶訪問量大、網點分布不均等原因,提高用戶訪問網站的響應速度。
簡單的說,CDN的工作原理就是將您源站的資源緩存到位於全球各地的CDN節點上,用戶請求資源時,就近返回節點上緩存的資源,而不需要每個用戶的請求都回您的源站獲取,避免網絡擁塞、緩解源站壓力,保證用戶訪問資源的速度和體驗

CDN對網絡的優化作用主要體現在如下幾個方面
- 解決服務器端的“第一公里”問題
- 緩解甚至消除了不同運營商之間互聯的瓶頸造成的影響
- 減輕了各省的出口帶寬壓力
- 緩解了骨干網的壓力
- 優化了網上熱點內容的分布
二、CDN工作原理
傳統訪問過程

由上圖可見,用戶訪問未使用CDN緩存網站的過程為:
1.用戶輸入訪問的域名,操作系統向 LocalDns 查詢域名的ip地址.
2.LocalDns向 ROOT DNS 查詢域名的授權服務器(這里假設LocalDns緩存過期)
3.ROOT DNS將域名授權dns記錄回應給 LocalDns
4.LocalDns得到域名的授權dns記錄后,繼續向域名授權dns查詢域名的ip地址
5.域名授權dns 查詢域名記錄后,回應給 LocalDns
6.LocalDns 將得到的域名ip地址,回應給 用戶端
7.用戶得到域名ip地址后,訪問站點服務器
8.站點服務器應答請求,將內容返回給客戶端.
CDN訪問過程

通過上圖,我們可以了解到,使用了CDN緩存后的網站的訪問過程變為:
1.用戶輸入訪問的域名,操作系統向 LocalDns 查詢域名的ip地址.
2.LocalDns向 ROOT DNS 查詢域名的授權服務器(這里假設LocalDns緩存過期)
3.ROOT DNS將域名授權dns記錄回應給 LocalDns
4.LocalDns得到域名的授權dns記錄后,繼續向域名授權dns查詢域名的ip地址
5.域名授權dns 查詢域名記錄后(一般是CNAME),回應給 LocalDns
6.LocalDns 得到域名記錄后,向智能調度DNS查詢域名的ip地址
7.智能調度DNS 根據一定的算法和策略(比如靜態拓撲,容量等),將最適合的CDN節點ip地址回應給 LocalDns
8.LocalDns 將得到的域名ip地址,回應給 用戶端
9.用戶得到域名ip地址后,訪問站點服務器
10.CDN節點服務器應答請求,將內容返回給客戶端.(緩存服務器一方面在本地進行保存,以備以后使用,二方面把獲取的數據返回給客戶端,完成數據服務過程)
通過以上的分析我們可以得到,為了實現對普通用戶透明(使用緩存后用戶客戶端無需進行任何設置)訪問,需要使用DNS(域名解析)來引導用戶來訪問Cache服務器,以實現透明的加速服務. 由於用戶訪問網站的第一步就是域名解析,所以通過修改dns來引導用戶訪問是最簡單有效的方式
1.cdn 靜態文件緩存
配置cdn,源站一般是靜態網站或者aws的s3桶的地址
2.cdn 動態文件緩存
注:源站是elb的時候,需要把cdn域名配置到后端的服務器上