內容交付網路 (Content Delivery Network,CDN) 是一種伺服器網路,旨在讓 Web 內容交付更有效率且更快速,它是網站、行動應用程式及其他線上服務用來將文字、影像、影片及其他檔案等內容散佈給全球使用者的技術。
CDN 背後的理念是彌合使用者和代管網站或服務的來源伺服器之間的地理距離。使用者並非直接從單一伺服器擷取內容,而是由位於不同位置的多部伺服器散佈內容,如此一來,就能更快、更可靠地交付內容,尤其是提供給遠離來源伺服器的使用者。
內容交付網路的運作方式相對簡單:當使用者造訪網站時,他們的要求會路由到 CDN 中離他們最近的伺服器,而非聯絡主伺服器。該伺服器也稱為邊緣伺服器,其中包含網站或服務內容的複本,並由邊緣伺服器將所需的內容傳送給使用者。
CDN 的一個重要層面是選擇最適合用來交付內容的邊緣伺服器,這時必須以納入了網路延遲、伺服器使用率、地理鄰近度等考量因素的演算法來完成。透過選擇最合適的伺服器,CDN 可以更快、更高效地交付內容。
內容交付網路有不同類型,我們將在下面介紹其中一些。
此拓撲會將內容從來源伺服器預先載入到內容交付網路中的邊緣伺服器。內容會定期更新和同步,以確保邊緣伺服器擁有最新版本的內容。如此一來,就能更快交付內容,因為邊緣伺服器上早就有內容可用了。
在此拓撲中,內容是根據來自邊緣伺服器的要求進行擷取。當使用者提出要求時,邊緣伺服器會檢查自己是否已儲存所需的內容,如果沒有,邊緣伺服器就會從來源伺服器擷取內容,並將其儲存以供未來的要求使用。如此可以有效使用邊緣伺服器上的空間。
此拓撲使用使用者本身的資源來散佈內容。當使用者擷取內容時,內容會同時轉寄給要求相同內容的其他使用者。如此可減少來源伺服器的負載,並加快內容交付速度。對等 CDN 在散佈大型檔案(例如影片)方面特別有效。
改善效能:在位於不同區域的邊緣伺服器之間散佈內容,使用者可以從地理位置上距離他們較近的地方存取內容,如此可減少延遲並加快網站或服務的載入速度。改善效能就能提供更好的使用者體驗,並可降低單次造訪率。
擴充性:CDN 因為可在多部伺服器之間分配流量,因此能提供良好擴充性。如果出現大量使用者或流量突增的情況,CDN 可以將負載分散給邊緣伺服器,避免基礎架構過載。無論使用者數量為何,這都能確保網站或服務的效能一致。
可靠性:CDN 可在多部伺服器之間散佈內容,提高了服務的恢復能力。如果一台伺服器發生故障或過載,其他伺服器可以繼續交付內容,如此便能提高網站或服務的可用度,並減少可能的停機時間。
安全性:內容交付網路還可以提供安全性,保護網站和服務免受分散式阻斷服務 (DDoS) 攻擊。使用 DDoS 緩解技術,CDN 可以在惡意要求到達來源伺服器之前先篩選流量並加以封鎖,藉此提升服務的安全性與穩定性。
內容交付網路在提高網站和線上服務效能、擴充性和可靠性方面扮演著重要角色,透過在不同位置的伺服器之間散佈內容,世界各地的使用者都可以更快存取內容。CDN 不但可以有效交付內容,並有助於提供正面的使用者體驗。