前言
在博文中 解讀大型網站的演變過程 淺談 舉家搬遷靜態文件到CDN 博文中都有涉及CDN,這次我們來詳細講解下CDN的架構
簡介
CDN是構建在網絡之上的內容分發網絡,依靠部署在各地的邊緣服務器,通過中心平台的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。CDN的關鍵技術主要有內容存儲和分發技術。
CDN的基本原理是廣泛采用各種緩存服務器,將這些緩存服務器分布到用戶訪問相對集中的地區或網絡中,在用戶訪問網站時,利用全局負載技術將用戶的訪問指向距離最近的工作正常的緩存服務器上,由緩存服務器直接響應用戶請求
好處
提升訪問資源速度,為用戶提供更好的用戶體驗,例如訪問某個圖片,原來如果從源站獲取可能需要30s,但是使用cdn之后可能只需要 1 ~ 5 s,因為cdn是從離用戶最近的服務器獲取圖片資源的
適用對象
靜態資源,例如js,css,圖片資源,視頻,音樂資源,軟件資源等等
CDN架構
實例:某個用戶訪問圖片資源(例如cdn.pic1.54php.cn/test.jpg)
瀏覽器通過dns解析出 cdn.pic1.54php.cn cname 到 CDN的服務器
CDN服務器 內部通過存儲引擎 查看文件是否在 CDN存儲服務器上
如果在直接返回給用戶圖片
如果不在,CDN存儲服務器啟動 從原圖站點 下載圖片 然后存儲起來在返回給用戶圖片
重點剖析
以下兩點也是我們使用CDN廠商服務必須要配置的兩項
cname操作:cdn.pic1.54php cname 到 CDN廠商指定的一個域名(特指步驟一)
配置源站地址:cdn服務器找不到圖片會從源站網站下載資源 (特指步驟四)
所以每一個CDN資源項都需要配置2個域名,例如本人博客資源圖片配置如下
cname操作:cdn.pic1.54php.cn cname 7xo9jr.v1.com.z0.glb.qiniudns.com. 源站域名配置:pic1.54php.cn A xxx.xxx.xxx.xxx (博客服務器ip)
大話CDN技術
前面主要說的是用戶使用角度,我們再來一起學習下 要想提供CDN服務需要的技術積累
DNS 智能解析
緩存技術 例如varnish,squid等等
負載均衡技術 例如nginx
DNS智能解析
為什么需要智能解析?
就是為了保證不同地域的用戶都可以從最近的服務器獲取資源 達到提速的作用。
那么什么是智能解析?
例如 用戶張三 是 上海的用戶 ,李四是北京的用戶,那么通過地域策略,張三獲取圖片資源就是從上海服務器獲取,李四就是從北京服務器獲取
緩存技術
追求更快,雖然從最近的服務器獲取資源已經夠快了,但是還可以通過緩存技術可以是之更快,我工作所接觸過得就有varnish 和 squid 兩種技術。關於squid 介紹可以查看 Squid 操作實踐
負載均衡
顧名思義 就是用來分發任務的,如果我們的服務器是一組多台,那么就要通過負載均衡軟件來均衡分發任務
總結
希望通過 使用者角度 和 服務商角度的講解,大家對CDN有了一定的了解
原文地址: CDN服務技術架構圖
標簽: cdn cname 速度優化 squid varnish