什麼是 CDN、它們如何運作以及為什麼要使用 CDN?!

已發表: 2016-03-22

想像這樣一個世界:每個網頁都會立即加載,沒有一毫秒的等待時間。 儘管這還不可能,但不斷出現的技術正在幫助我們離這個目標更近了幾步。

內容交付網路(或簡稱CDN )是實現此目標的步驟之一。

在本文中,我將解釋什麼是 CDN、CDN 模型與傳統網站寄存模型的比較,討論為您的網站使用 CDN 的優缺點,最後向您展示如何開始您的網站與CDN。

什麼是 CDN?

CDN 是一個網頁伺服器系統,分佈在世界各地,每個伺服器都託管您網站的副本,以改善向使用者交付內容的方式。

CDN 的主要目的是什麼?

CDN 的主要目的是更有效(即更快)向最終用戶提供網站內容。

如果您使用 CDN,當使用者載入您網站的內容時,距離使用者最近的 CDN 伺服器將提供該內容。

由於內容的傳輸距離較短,因此可以更快地到達用戶手中,這意味著您的網站載入時間更快!

但正如我們將看到的,這並不是使用 CDN 的唯一優勢

CDN 如何運作?

正如我們已經討論過的,當您使用 CDN 作為網站託管設定的一部分時,網路中的每台伺服器都會託管您網站的副本。

這些 CDN 伺服器被稱為「邊緣」伺服器,因為它們位於網路邊緣並且距離用戶最近。

這與「原始」伺服器形成鮮明對比,「原始」伺服器由您的網站寄存公司提供,是您建立和更新網站時自動上傳和儲存檔案的地方。

CDN 工作原理的基本圖。

您可能想知道您的網站如何從來源伺服器到達這些邊緣伺服器?

嗯,這取決於你的CDN 是推式還是拉式

什麼是 Pull CDN(以及它是如何運作的)?

拉取 CDN 設定的工作原理是在需要時從來源伺服器拉取檔案

當使用者第一次要求檔案時,邊緣伺服器將需要從您的來源伺服器(即您目前的託管提供者)讀取檔案。

然後,邊緣伺服器將儲存該檔案的快取版本。 「快取」版本僅表示該特定時刻的檔案副本。

未來對該文件的請求將直接來自邊緣伺服器(而不是從來源伺服器拉取),直到檔案過期(變得過時)。

過期後,檔案將需要再次從來源伺服器刷新並快取。

什麼是 Push CDN(以及它如何運作)?

推播 CDN允許使用者將檔案上傳(「推送」)到 CDN本身,檔案上傳後立即分發到邊緣伺服器。

因此,您的檔案已經儲存在每個邊緣伺服器上,無需從來源伺服器中提取。

這是一個不太常見的選項; 然而,它對於分發大型媒體檔案是有利的,因為媒體的副本將始終儲存在邊緣伺服器上。

CDN 會取代您的網站寄存嗎?

不, CDN 不會取代您的網站寄存。 他們協同工作。

您的原始文件全部儲存在您的網站寄存服務商的伺服器上。 這是原始伺服器。

CDN 伺服器僅包含來源伺服器上檔案的副本

如果您擺脫網站寄存,CDN 將無處可複製文件!

CDN 的影片摘要

如果您仍然有點困惑,這裡有一個快速視頻,用非常簡單的術語解釋了 CDN:

什麼是 CDN?

沒有 CDN 的虛擬主機的問題

使用傳統的網站託管模型,您網站的所有文件(HTML、CSS、圖像等)都託管在世界上的一個位置- 基本上是您的網站託管提供者的資料中心所在的位置。

當最終使用者造訪您的網站時,請務必從此位置檢索網站內容

這樣做有幾個缺點:

1. 速度隨著距離的增加而降低

如果您的網站寄存供應商的資料中心位於德州,則每次使用者想要載入您的網站時,內容都會從該德州的資料中心傳送。

使用者距離伺服器的地理位置越遠,傳輸速度往往會降低,因為檔案需要傳輸更遠的距離。 使用者距離資料中心越遠,網站載入所需的時間就越長。

因此,英國的網站使用者載入您的網站的速度會比美國的使用者慢,因為他們靠近德州資料中心。

2. 傳輸速率有限

考慮多個用戶同時嘗試加載您的網站的情況。

就像您的個人電腦對透過網路傳輸檔案的速度(吞吐量)有限制一樣,伺服器對檔案傳輸的速度也有限制。

您目前的網站託管是否已做好應對如此流量激增的準備?

特別考慮未指定傳輸速率的共享託管解決方案。 在這些和其他環境中,傳輸速率可能非常有限,當您的網站流量激增時,這可能會導致明顯的效能影響。

由於這些原因,流量激增可能會增加網站的載入時間,因為網站的內容會立即發送給所有最終用戶。

使用 CDN 的優點

透過CDN模型,我們可以克服傳統網站寄存模型的缺點。 事實上,CDN 有幾個優點,例如:

1. 更快的載入時間(透過從最近的伺服器提供內容給使用者)

請記住,使用者距離託管提供者的資料中心越遠,載入網站所需的時間就越長,因為檔案需要傳輸更遠的距離。

CDN 將根據每個最終用戶位於世界上的位置,從距離每個最終用戶最近或最有效的邊緣伺服器提供內容。

例如,如果中國的某人要載入您的網站,CDN 可能會自動從中國的伺服器載入您網站內容的副本。 如果有人從英國造訪您的網站,則可能會使用英國的伺服器將您的網站載入到該特定使用者。

CDN 將自動確定哪個伺服器對於每個最終用戶來說是最有效的選擇。

傳統託管模型與 CDN 模型的圖表。

2.更好的流量高峰處理(透過分散傳輸檔案)

如前所述,伺服器對一次可以傳輸的資料量有限制。 當多個使用者嘗試同時造訪網站時,CDN 有助於提高網站的效能。

鑑於 CDN 工作原理的性質,對您網站的同時請求可能會由世界各地多個區域的多個伺服器處理,具體取決於請求的來源。

這樣,一台特定的伺服器就不會被來自使用者的所有請求淹沒。 CDN 供應商還將實施其他程序,以確保您的檔案即使在流量激增的情況下也能有效載入。

3. 更好的安全性(透過 DDoS 緩解和保護)

DDoS 攻擊是指您的伺服器充斥著對您網站的非法請求,其目的是使您的網站崩潰或因傳輸過多而導致頻寬費用增加。

您的 CDN 供應商可能會提供 DDoS 偵測和緩解機制,這將有助於提高網站在 DDoS 攻擊中的效能和正常運作時間。

使用 CDN 的缺點

然而,使用 CDN 也有一些缺點。

1. 成本:CDN 通常是按使用付費的

CDN 提供者通常會根據您傳輸的內容量收費。 因此,您每月的費用因月份而異

您目前的網站寄存套餐可能已經包含一定金額的每月轉帳作為您目前的寄存套餐的一部分; 因此,您需要考慮 CDN 的額外成本是否適合您企業的線上業務。

請注意,「推送 CDN」提供者通常也會對儲存空間收費(請參閱下文)。

為了幫助您了解遷移到雲端的成本,請考慮以下情境…

假設您的網站大小為 1MB,CDN 提供者收取0.085 美元/GB的傳輸費用。 10,000 位使用者造訪整個網站的成本為:((1/1024)×10,000) ÷ 0.085 = 114 美分,即每 10,000 個請求 1.14 美元

正如您所看到的,這並不是一個離譜的成本。

但是,許多 CDN 產品會從您目前的託管提供者的儲存位置讀取您的文件,這是額外的費用。 此來源伺服器可以是檔案儲存系統(例如 Amazon S3),也可以是您目前的託管提供者。

如果您的網站包含動態內容,您仍然需要維護可以處理這些類型文件的託管解決方案。

由於 CDN 解決方案通常是按使用付費的,因此 DDoS 攻擊可能會給您帶來經濟上的不利——此類攻擊導致的文件傳輸量急劇增加將導致您的企業成本增加。

然而,如前所述,CDN 提供者正在努力檢測和減輕這些類型的攻擊。

注意:許多最好的網站託管提供者現在在他們的計劃中包含免費的 CDN 服務。

2. 快取變化的內容需要額外的配置

請記住,CDN 的工作原理是在世界各地快取您網站內容的副本。

但是,大多數網站包含一些內容,這些內容會根據造訪網站的特定使用者或其他條件(特定使用者的歡迎訊息、購物車等)而有所變化。

這種類型的內容在全球範圍內快取並不是那麼簡單,因為它會根據請求不斷更新。

流檔案是另一種在 CDN 中使用時需要特別注意的內容形式。 請參閱下文以了解更多詳細資訊。

其他 CDN 注意事項

更新文件時刷新文件緩存

當您需要使用拉取 CDN 更新其中一個檔案時,世界各地的所有快取副本也都需要過期,以便在下一次請求時刷新它們。

為了實現這一點,您可能需要等待預設到期時間(因提供者而異),或強制快取檔案立即失效(透過手動清除快取)。

儘管更新文件可能涉及此額外步驟,但您網站的靜態文件可能不會經常更新。

確保不經常存取的文件有足夠的過期時間

拉式 CDN 解決方案不一定始終在每個邊緣伺服器上包含檔案的副本(下面將更詳細地討論)。 如果還沒有檔案的快取版本,則必須從來源伺服器中提取該檔案。

對於視訊等較大檔案來說,這更是一個問題,因為從來源伺服器載入這些類型的檔案對效能的影響可能會非常明顯。

此問題的一些解決方案是增加快取檔案的過期時間(如果可能),以便檔案不需要頻繁地從來源伺服器刷新,或者將大檔案儲存在推送 CDN 解決方案上(見下文) )。

靜態內容與動態內容

網站包含兩種主要類型的資料-靜態內容和動態內容。

您在網站上看到的大部分內容(即外觀、圖像、影片、CSS 和 JavaScript 檔案等)通常是靜態內容。 靜態內容永遠不會改變(除非您重新上傳原始檔案)。

例如,無論誰訪問您的網站或您重新加載頁面多少次,您公司的徽標的外觀都不會改變。

動態內容會根據請求資料的人或其他標準而變化

例如,當約翰登入他的銀行帳戶時,他會看到他的餘額。 然而,當大衛登入時,餘額與喬看到的不一樣

另一個例子:登入 WordPress 儀表板後,您將看到一條訊息,例如「Howdy,John!」。

根據使用者或其他標準而變化的內容被視為動態內容。

CDN 如何處理靜態、動態和串流內容?

此時,我們遇到一個重要問題:「我可以在 CDN 上儲存什麼樣的檔案?」。

由於無論誰加載您的網站,靜態文件往往始終保持不變,因此它們非常適合透過 CDN 在世界各地進行緩存,因為這些文件很少更新。

就動態內容(即購物車)而言,通常沒有一個檔案可以在世界範圍內緩存,因為它經常根據每個用戶或其他條件而變化。

然而,CDN 供應商正在實施解決方案來提高載入動態內容的效率,例如找到使用者和託管伺服器之間的最快路徑。

許多 CDN 供應商也實施了透過 CDN 串流直播和點播媒體的解決方案。

如何設定 CDN

所以現在,您可能會想,「我確信我的網站需要 CDN! 我如何過渡?」。

答案取決於您使用的託管提供者以及您想要哪種類型的 CDN 解決方案。

一些網頁寄存供應商提供了一個選項,可以透過其控制面板輕鬆啟用 CDN。 其他設定需要一些額外的步驟。

為您的整個網站添加 CDN 層

對於小型企業主來說,此選項是最簡單的設定之一。 使用者存取您網站內容的每個請求都將首先透過 CDN 提供者管理的系統進行過濾。

靜態內容將從 CDN 加載,而動態內容將直接從現有伺服器加載(或可以使用一種技術來縮短動態內容的載入時間,如前所述)。

拉取 CDN 實際上會在幕後實現,以便透過 CDN 分發檔案。

CloudFlare 是提供此類 CDN 解決方案的公司之一。 CloudFlare 等一些公司也將提供 CDN 以外的其他網站效能增強功能。

如何設定

設定此類 CDN 系統的主要步驟是更新網站的 DNS 記錄以指向 CDN 層。 然後,CDN 層將根據需要將請求路由到您的來源伺服器。

您仍然需要保留目前的託管解決方案,以便 CDN 從中提取檔案。

如何設定拉取 CDN

您指定要在 CDN 上分發的來源伺服器上的檔案的位置。 然後,CDN 會根據需要從來源伺服器拉取檔案。

您還需要將網站中檔案的連結更新到 CDN 端點,或更新 DNS 設定以指向 CDN。

如何設定推送 CDN

將您的檔案上傳到 CDN 提供者。 您還需要將網站中檔案的連結更新到 CDN 端點,或更新 DNS 設定以指向 CDN。

我應該離開我的網站託管提供者嗎?

不。即使購買了 CDN 解決方案,您也需要繼續使用網站寄存供應商。

請記住,CDN 用於快取內容; 如果您的網站包含任何動態內容,您仍然需要保留目前的託管解決方案才能處理該內容。

哪些託管公司提供 CDN?

如今,許多託管公司都提供 CDN 作為其共享託管計劃的一部分:

  • SiteGround(使用他們自己客製的 SiteGround CDN)
  • Bluehost(Cloudflare 已預先啟用)
  • Kinsta(免費包含付費 Cloudflare 方案)
  • WP Engine(免費包含付費 Cloudflare 方案)
  • HostGator(Cloudflare 僅包含在商業計劃中)
  • IONOS(Cloudflare 僅包含在專家計劃中)
  • Cloudways(每月僅需 4.99 美元即可新增 Cloudflare Enterprise)

結論

CDN 是一種可行的解決方案,可透過減少向使用者傳輸檔案所需的時間來提高網站的效率。 這可能會增加您網站上的客戶保留率,甚至可能提高您的搜尋結果排名。

CDN 還將減少目前託管設定上的檔案請求負載,這可能有助於處理大流量。

然而,CDN 的成本通常會增加。 您的網站值得 CDN 提供的效能改進,但好處必須超過潛在的成本和其他權衡。

不要忘記 CDN 只是提高網站效能的眾多步驟之一。 選擇一個快速的網站主機是首要的(也是最重要的)。

您還可以採取許多其他措施來普遍提高網站的速度(例如圖片壓縮),特別是改善 WordPress 網站的載入時間!

您的網站使用過 CDN 嗎? 請在下面的評論中告訴我們您對 CDN 的看法!