如何自己架設部署CDN?


關於企業是否需要部署自己的CDN,這個需要結合最優的性價比、自身的需求和業務規模以及自身的能力等綜合因素來衡量,市場上也有眾多的優異的CDN可供選擇!

如果企業需要自建CDN參考下面一些簡單資料:

CDN的網路架構:

簡單說下:CDN網路架構主要由兩大部分,分為中心和邊緣兩部分,中心指CDN網管中心和DNS重定向解析中心,負責全局負載均衡,設備系統安裝在管理中心機房,邊緣主要指異地節點,CDN分發的載體,主要由Cache和負載均衡器等組成。

當用戶訪問加入CDN服務的網站時,域名解析請求將最終交給全局負載均衡DNS進行處理。全局負載均衡DNS通過一組預先定義好的策略,將當時最接近用戶的節點地址提供給用戶,使用戶能夠得到快速的服務。同時,它還與分布在世界各地的所有CDNC節點保持通信,搜集各節點的通信狀態,確保不將用戶的請求分配到不可用的CDN節點上,實際上是通過DNS做全局負載均衡。

對於普通的Internet用戶來講,每個CDN節點就相當於一個放置在它周圍的WEB。通過全局負載衡DNS的控制,用戶的請求被透明地指向離他最近的節點,節點中CDN伺服器會像網站的原始伺服器一樣,響應用戶的請求。由於它離用戶更近,因而響應時間必然更快。

 

每個CDN節點由兩部分組成:負載均衡設備和高速緩存伺服器

負載均衡設備負責每個節點中各個Cache的負載均衡,保證節點的工作效率;同時,負載均衡設備還負責收集節點與周圍環境的信息,保持與全局負載DNS的通信,實現整個系統的負載均衡。

高速緩存伺服器(Cache)負責存儲客戶網站的大量信息,就像一個靠近用戶的網站伺服器一樣響應本地用戶的訪問請求。

CDN的管理系統是整個系統能夠正常運轉的保證。它不僅能對系統中的各個子系統和設備進行實時監控,對各種故障產生相應的告警,還可以實時監測到系統中總的流量和各節點的流量,並保存在系統的資料庫中,使網管人員能夠方便地進行進一步分析。通過完善的網管系統,用戶可以對系統配置進行修改。

理論上,最簡單的CDN網路有一個負責全局負載均衡的DNS和各節點一台Cache,即可運行。DNS支持根據用戶源IP地址解析不同的IP,實現就近訪問。為了保證高可用性等,需要監視各節點的流量、健康狀況等。一個節點的單台Cache承載數量不夠時,才需要多台Cache,多台Cache同時工作,才需要負載均衡器,使Cache群協同工作。

CDN網路實現的具體操作過程:

1)作為ICP,只需要把域名解釋權交給CDN運營商,其他方面不需要進行任何的修改;操作時,ICP修改自己域名的解析記錄,一般用cname方式指向CDN網路Cache伺服器的地址。

2)作為CDN運營商,首先需要為ICP的域名提供公開的解析,為了實現sortlist,一般是把ICP的域名解釋結果指向一個CNAME記錄;

3)當需要進行sorlist時,CDN運營商可以利用DNS對CNAME指向的域名解析過程進行特殊處理,使DNS伺服器在接收到客戶端請求時可以根據客戶端的IP地址,返回相同域名的不同IP地址;

4)由於從cname獲得的IP地址,並且帶有hostname信息,請求到達Cache之後,Cache必須知道源伺服器的IP地址,所以在CDN運營商內部維護一個內部DNS伺服器,用於解釋用戶所訪問的域名的真實IP地址;

5)在維護內部DNS伺服器時,還需要維護一台授權伺服器,控制哪些域名可以進行緩存,而哪些又不進行緩存,以免發生開放代理的情況。


不到一定的規模,不建議自建CDN。成本和性能都比不上使用專業的CDN服務。

當然,自己搭著玩就另說了:

可用BIND做DNS解析。

可用純真IP資料庫。

可用LVS做4層負載均衡。

可用Nginx,Varnish,Squid,Apache TrafficServer做7層負載均衡和cache。


如果要自建CDN的話,你需要再每個節點,部署一定量的伺服器,購買運營商的帶寬,還有其他和CDN相關的系統和軟體,例如負載均衡等。另外你得有強大的管理後台(這個很難管理),另外一般做CDN的話,節點最好都是在20多個點左右,如果你只建立4個點,其中1到2個點DOWN,會給其他2個點,帶來很大負載,如果流量過高的話,你這樣的CDN網路就沒有太多存在的意義。


有一篇文章叫做《簡單CDN》, 可以搭建一個簡單的CDN網路,當然目前一般建不如租,假如自己有帶寬伺服器資源可以考慮和CDN服務商交換流量

《互聯網運營智慧》第7章「簡單cdn」正式版下載

簡單cdn - sery


jingchunzhang/56vfs · GitHub

包括文件分發,分發信息管理,分發信息查詢,還缺gslb(重點是ip庫準確)


因為沒有備案,伺服器在國外的話 訪問比較慢,國內CND 又不讓用,所以自己搭建1-2個節點來解決問題


不到一定規模真不建議自建CDN。不說別的,單單一個CDN調度系統的實現和維護想想都夠頭大了


免費的CDN有很多啊,為什麼要自己部署?


推薦閱讀:

如何評價即將關閉的日記網站ohlife.com?
2016 年有哪些讓人眼前一亮的產品?
有沒有哪個中國的互聯網產品是中國最先做出來並且世界領先的?
貨運o2o發展潛力有多大?除了騾跡物流外還有哪些在做這個項目的公司值得關注?
為什麼大眾點評能夠存活下來,他們的核心競爭力是什麼?

TAG:互聯網 | 互聯網產品 | 伺服器 | 信息技術IT | CDN |