隨著雲端服務提供者的技術不斷的進步,這幾年 CDN 的應用算是非常流行,比較有名的應該就屬於 CloudFlare 跟 AWS 的 Cloudfront 了,這篇文章我們就來討論一下 CDN 的基本原理以及 CDN 在 WordPress 網站上的應用吧。
何謂 CDN
CDN 是 Content Delivery Network 的簡寫,翻成中文就是內容傳遞網路。CDN 的基本原理就是把同一檔案複製到很多不同的伺服器上,然後依照使用者的位置來計算他最近的資料中心並且由該資料中心提供檔案。假設你人在台灣,那你從台灣讀取一個 Cloudfront 的檔案就應該會從東京來,但是相同的一個檔案,如果你在雪梨讀取,可能就會從雪梨當地的 AWS 資料中心來。
以 Cloudfront 來說,當你設定好你的檔案來源之後,在使用者第一次經由 Cloudfront 來存取檔案的時候,AWS 會自動將這個檔案複製下來並且快取到其他資料中心,等到下一次使用者要讀取同一個檔案時,Cloudfront 就會提供離使用者最近的快取檔案給使用者,不再經過原本的檔案來源。
CDN的優點
- 可以根據使用者位置判斷出最近的檔案位置,減少使用者下載以及讀取時間。
- 由於是分散式的架構,可以降低對網站伺服器的負擔,適合高流量的網站使用。
- 同一檔案已經被備份到多個地點,所以如果有一個資料中心掛掉或是出問題的時候,檔案也可以由其他地方來取得,可以大幅增加服務的穩定性。
CDN的缺點
CDN 的最大的缺點就是...要錢,但是其實並不貴,您可以參考 AWS CloudFront 的價格表 ,至於 CloudFlare,他們宣稱有免費的 CDN 服務不過筆者倒是還沒試過。 CDN 另外一個缺點應該就是快取了,這當然也是它的優點,不過當你的所有檔案都是在 CDN 上而且你需要對同一個檔案做出變更的時候,就必須等到 CDN 的快取更新(Cloudfront 快取的時間為24小時),所以通常我會建議只用 CDN 來傳送圖片跟檔案而非較常變動的 css 跟 js 檔案。
CDN 在WordPress上面的運用
我們可以使用 CDN 來傳送 WordPress 的圖片甚至是其他檔案,這樣不但可以減少我們伺服器的負擔,也可加快網頁的載入速度。大部分的快取外掛包含我們前面所介紹的 WP-Rocket,都有 CDN 整合的功能,CDN 適合用在哪些網站上面呢?
- 網站有很多高品質的圖片或是檔案提供使用者觀看或是下載: 利用 CDN 可以確保使用者不論身在何處,都可以由最近的資料中心下載讀取檔案。
- 目標使用者分佈在多個區域: 如果您的網站使用者分佈在世界各地,那使用者可能因為本身的位置和您的網站伺服器太遠而造成網站以及圖片讀取緩慢的情況,使用 CDN 可以大幅改善這個問題。
- 高流量網站:高流量網站的伺服器負擔一般來說都會比較大,使用 CDN 可以大幅減少伺服器的負擔。
下一篇我們將一步一步的教你怎麼設定 Cloudfront CDN 並應用在 WordPress 網站上。
