CDN(內容傳遞網路)
在wiki上的解釋是:
內容傳遞網路(Content delivery network或Content distribution network,常簡寫成CDN)是指一種透過網際網路互相連接的電腦網路系統,提供高效能、可擴展性、及低成本的網路將內容傳遞給使用者。
簡單來說,CDN就是在全球各地怖署節點,讓使用者可以就近從最近節點取得快取檔案,像是我們架網站時,可把一些共用的如JQuery函式庫、靜態圖片等檔案放置到CDN伺服器(如這篇文章: [JQuery]使用CDN來載入JQuery)來加快網站的讀取速度。也可以避免被攻擊者使用DDos的方式來癱瘓伺服器。
CDN的功能及優點包括
- 高效能:CDN可以讓使用者「就近取得檔案」,內容提供者事先將檔案推到全球的 CDN 節點,在台灣的下載者儘量從台灣取得檔案,在日本或香港的下載者也儘量從當地的伺服器取得檔案。並且因為下載者透過 CDN 下載靜態元件,可以減少原始 server 的負荷。
ps: 要決定使用者到那個節點要決定使用者應該要到哪組 server 通常有這些方法:- GeoDNS
- Anycast
- HTTP Redirect (會比較差)
- 高可靠度:當今天主要網站當機了,使用者可以從CDN的備援網站去讀取檔案,不至於讓整個網站癱瘓。也可以避免DDos的大量機器人攻擊來癱瘓網站。
- 低成本:因為內容提供者不需要在一個 data center 上建立非常粗的水管。舉例來說,如果傳遞需要 100Gbps 的流量,利用 CDN 架構(將資料提供者分散在世界各地),每個 data center 也許只需要 5Gbps 的流量。由於十個 10Gbps 網路與 100Gbps 網路的成熟度不同,成本也會不相同。
CDN提供的服務者包括Akamai、Amazon CloudFront等等(請見下圖)
這是我從別的網站找來的CDN運作示意圖
原本我們讀取網站的模式如下圖,我們會先去和DNS從網址要到伺服器ip,
再去用ip和我們的網頁伺服器讀取網頁內容
使用CDN的架構後,使用者用網址和DNS伺服器要ip位置時,
CDN的DNS伺服器會從使用者所傳來的資訊,去判別離使用者最近的CND節點,
然後使用者再去和該CDN伺服器要取檔案,
因此當某個節點壞掉時,網站還是可以藉有其他節點去正常運作
下面有一些我找的資源