客戶(hù)端和服務(wù)器之間的距離會(huì)顯著影響客戶(hù)端體驗(yàn)的加載時(shí)間。基于該假設(shè),最大化用戶(hù)體驗(yàn)的可靠方法是在全球戰(zhàn)略位置放置多臺(tái)服務(wù)器來(lái)托管網(wǎng)站。盡管從理論上講,這種解決方案可行,但實(shí)際上效率很低。將整個(gè)網(wǎng)站托管在多臺(tái)服務(wù)器上只會(huì)占用額外的空間,而沒(méi)有一個(gè)好的目的。因此,創(chuàng)建了一種類(lèi)似但更有效和優(yōu)化的方法。它被命名為?CDN,代表內(nèi)容交付網(wǎng)絡(luò)。

什么是內(nèi)容交付網(wǎng)絡(luò)?
CDN 是 Content Delivery Network 的縮寫(xiě),是一種用于根據(jù)用戶(hù)的地理位置更快、更有效地將內(nèi)容從您的網(wǎng)站交付給用戶(hù)的方法。簡(jiǎn)而言之,它是一個(gè)位于許多地理位置的服務(wù)器網(wǎng)絡(luò),可改善靜態(tài)和流媒體內(nèi)容的交付。在地理上距離請(qǐng)求內(nèi)容的用戶(hù)最近的 CDN 服務(wù)器被命名為“邊緣服務(wù)器”。當(dāng)用戶(hù)請(qǐng)求通過(guò) CDN 提供的某個(gè)網(wǎng)頁(yè)時(shí),其內(nèi)容存儲(chǔ)在邊緣服務(wù)器上,從而使節(jié)點(diǎn)之間的延遲最小化。這可確保為用戶(hù)提供最佳的在線體驗(yàn)。它通過(guò)在多個(gè)服務(wù)器上緩存內(nèi)容并根據(jù)距離將其定向到用戶(hù)來(lái)實(shí)現(xiàn)。此內(nèi)容可以是從 Web 對(duì)象和可下載對(duì)象到實(shí)時(shí)流媒體的任何內(nèi)容。要了解有關(guān) CDN 的更多信息,請(qǐng)查看 這篇文章。
CDN 如何工作?
為了避免因慢速服務(wù)造成用戶(hù)不滿意,CDN 將內(nèi)容移近用戶(hù),以減少延遲并改善用戶(hù)體驗(yàn)。從理論上講,這是整潔、優(yōu)雅且不言自明的。然而,在實(shí)踐中,存在一些非常棘手的技術(shù)挑戰(zhàn)。
首先,為了減少任何特定用戶(hù)的延遲,CDN 必須有一個(gè)內(nèi)容緩存服務(wù)器——一個(gè)緩存——離他們很近。不幸的是,為每個(gè)可能的互聯(lián)網(wǎng)用戶(hù)都擁有一個(gè)附近的緩存是不可行的。相反,我們將緩存組織到 PoP 中,將它們分布在大的地理區(qū)域(歐洲、美國(guó)、亞洲等),然后將它們放置在這些區(qū)域內(nèi)的主要人口中心。
接下來(lái),給定單個(gè)用戶(hù)的請(qǐng)求,CDN 必須將其定向到最近的 POP。大多數(shù) CDN 通過(guò)利用一種稱(chēng)為 GeoIP 的技術(shù)來(lái)做到這一點(diǎn)。GeoIP 可以被認(rèn)為是一個(gè)將 IP 地址映射到地理區(qū)域(國(guó)家、城市等)的大型查找表。在處理請(qǐng)求時(shí),CDN 將引用該表并將用戶(hù)的流量定向到最近的可用服務(wù)器。

使用 CDN 有什么好處?
每天有大量流量的網(wǎng)站可以利用 CDN 來(lái)發(fā)揮自己的優(yōu)勢(shì)。它不僅有助于減少延遲,而且還減輕了原始服務(wù)器的一些負(fù)載,因?yàn)檎?qǐng)求將被定向到 CDN 服務(wù)器。
改進(jìn)的性能
這是內(nèi)容交付網(wǎng)絡(luò)的主要和最吸引人的特征。選擇 CDN 的網(wǎng)站可以將加載時(shí)間減少多達(dá) 50%,在某些情況下甚至可以減少 50%。CDN 通過(guò)以下方式增強(qiáng)您的內(nèi)容交付:
- 最大限度地減少內(nèi)容的存儲(chǔ)位置和需要發(fā)送的位置之間的距離。
- 減少文件大小以?xún)?yōu)化網(wǎng)站加載速度。
- 優(yōu)化服務(wù)器基礎(chǔ)設(shè)施以更快地響應(yīng)用戶(hù)請(qǐng)求。
更好的可靠性
眾所周知,計(jì)算機(jī)和服務(wù)器并不完美。服務(wù)器出現(xiàn)故障,網(wǎng)絡(luò)變得擁擠,連接可能會(huì)中斷。即使出現(xiàn)上述任何問(wèn)題,CDN 也允許網(wǎng)站為用戶(hù)提供不間斷的服務(wù)。
內(nèi)容交付網(wǎng)絡(luò)平衡網(wǎng)絡(luò)流量的負(fù)載,確保沒(méi)有一臺(tái)服務(wù)器過(guò)度擁擠。如果單個(gè)服務(wù)器確實(shí)發(fā)生故障,CDN 可以啟動(dòng)“故障轉(zhuǎn)移”過(guò)程,讓備份服務(wù)器發(fā)揮主導(dǎo)作用。

節(jié)省金錢(qián)
CDN 減少網(wǎng)站運(yùn)營(yíng)商支出??的主要方式是減少進(jìn)出源服務(wù)器的次數(shù)。因?yàn)?CDN 緩存網(wǎng)站上的大部分內(nèi)容并從緩存中提供這些內(nèi)容,所以源服務(wù)器不必一遍又一遍地傳送相同的內(nèi)容。相反,CDN 代表源服務(wù)器執(zhí)行此操作。
網(wǎng)絡(luò)托管服務(wù)提供商通常會(huì)向網(wǎng)站收取傳入和傳出網(wǎng)絡(luò)托管服務(wù)商的數(shù)據(jù)的費(fèi)用。傳輸?shù)臄?shù)據(jù)越多,成本就越高。人們通常將這些費(fèi)用稱(chēng)為“帶寬成本”,盡管“帶寬”實(shí)際上是指網(wǎng)絡(luò)容量。
但是,當(dāng) CDN 代表源服務(wù)器提供網(wǎng)站的大部分內(nèi)容時(shí),需要傳輸?shù)臄?shù)據(jù)就少得多。更少的用戶(hù)請(qǐng)求到達(dá)源服務(wù)器,因?yàn)?CDN 處理了大部分請(qǐng)求。出于同樣的原因,從源服務(wù)器發(fā)出的內(nèi)容更少,從而降低了帶寬成本。
DDoS 防護(hù)
然而,它并不止于此,使用 CDN 還可以提高您的安全性,因?yàn)樗峁?DDoS 和機(jī)器人保護(hù)。它是網(wǎng)站基礎(chǔ)設(shè)施的最外層,也是流量的第一個(gè)接收者。攻擊甚至在到達(dá)源服務(wù)器之前就被檢測(cè)到并被阻止。
實(shí)時(shí)統(tǒng)計(jì)
最后,內(nèi)容交付網(wǎng)絡(luò)能夠顯示實(shí)時(shí)負(fù)載統(tǒng)計(jì)數(shù)據(jù)、優(yōu)化每個(gè)客戶(hù)的容量、顯示活動(dòng)區(qū)域、指示哪些資產(chǎn)受歡迎,并向客戶(hù)報(bào)告查看詳細(xì)信息。

CDN實(shí)施
既然您知道 CDN 是什么及其優(yōu)勢(shì),您可能會(huì)認(rèn)為為您的站點(diǎn)設(shè)置內(nèi)容交付網(wǎng)絡(luò)可能是一項(xiàng)艱巨的工作,公平地說(shuō),如果您自己做所有事情,那么肯定是這樣。但是,如果您采用更簡(jiǎn)單、更有效的方式讓專(zhuān)業(yè)服務(wù)為您完成,那么對(duì)于大多數(shù)網(wǎng)站來(lái)說(shuō),CDN 非常容易實(shí)現(xiàn),在其核心,您只需要告訴您的內(nèi)容交付網(wǎng)絡(luò)選擇哪些文件(通常是靜態(tài)資源)它應(yīng)該鏡像并配置您的站點(diǎn)以將這些文件的請(qǐng)求發(fā)送到 CDN 進(jìn)行處理。如果您使用流行的內(nèi)容管理系統(tǒng)(即 CMS),例如 WordPress 或 Drupal,您可以利用現(xiàn)有的眾多插件之一將您的站點(diǎn)設(shè)置為 CDN 提供商,而不會(huì)遇到太多困難。其他實(shí)現(xiàn)可能需要您修改 DNS 記錄并更改域的名稱(chēng)服務(wù)器。






