:::

讓網站接入CDN的門檻 / Requirement for Connecting CDN into a Website

6月 28, 2023 , , 0 Comments Edit Copy Download

2023-0410-022420.png

跟我想得有一段不小的落差。


內容傳遞網路 / Content Delivery Network, CDN

2023-0410-014154.png

https://www.cloudflare.com/zh-tw/learning/cdn/what-is-a-cdn/ 

CDN的定義是內容傳遞網路(Content Delivery Network或Content Distribution Network,縮寫:CDN)。你可以把CDN當做是多臺遍佈在全球的暫存伺服器,暫存的內容則是你的網頁。當使用者需要連上你的網頁時,他們可以先透過CDN,從物理位置最近的伺服器來取得快取內容,提升網路服務的效率。

55187d199c2a9079caff09622c6f78f9933ed773.png

https://community.cloudflare.com/t/checking-browser-before-accessing-is-always-showing-with-http-website/141501

到了現代,CDN能提供的功能不僅只有快取,甚至還被視為是實際網站前的防火牆。它可以阻擋不正常的連線,提供DDoS防護。

2023-0410-015038.png

接入CDN之後,就算是一臺普通的伺服器,也可以擁有全球規模的快取服務和攻擊防護能力。這使得CDN越來越受到網管人員的青睞。許多你在用的網站,很有可能就是CDN提供的內容。

Cloudflare以及它的限制 / Cloudflare and Limitation

install-cloudflare-1-1024x512.png

(圖片來源:Kinsta)

CDN服務中目前最知名的莫過於Cloudflare。Cloudflare在基本提供CDN的功能上是免費的,而這就已經足以滿足大部分人的需求,因此廣受歡迎。現在在網路上找到對於CDN設定的教學,大部分都是以Cloudflare為對象。

然而,這些教學比較著重在CDN能帶來的好處,對於要享有這個好處的前提,往往並沒有太多琢磨。直到實際操作之後,我才發現意外地門檻很高。

cloudflare-dns-records.jpg

以「How to Install Cloudflare on Your WordPress Site」這篇為例子來說,在一開始設定的時候,我們必須要將網域交給Cloudflare託管(文中的網域是「perfmatters.io」)。這裡的網域是真的網域,不能只是NS伺服器,也不能是網域下的特定域名或子網域。

如果你的網域確實只為了服務需要CDN保護的網站,那讓Cloudflare託管DNS並不是什麼壞事。不過我自己購買的「pulipuli.info」有多種用途,一旦讓Cloudflare託管,會讓我其他地方需要「pulipuli.info」底下域名的服務無法使用。

因為無法使用Cloudflare託管網域,大部分Cloudflare提供的服務我就不能使用了。

部分域名CDN / Partial CDN

既然整個網域託管行不通,那能不能只有部分域名受到CDN保護就好。這也是我一開始對CDN的期望。畢竟手上網站這麼多,不需要全部都讓CDN託管是吧。

結果答案是...免費的方案做不到。

https://developers.cloudflare.com/dns/zone-setups/partial-setup/setup/

https://developers.cloudflare.com/dns/zone-setups/partial-setup/setup/

Cloudflare的確提供了部分域名託管的服務。做法是設定域名,然後在DNS伺服器上用TXT Record進行驗證。做法跟Let's Encrypt的dns01挑戰很像。不過免費方案不能使用這個功能,必須要用Pro以上的方案才行。

https://www.cloudflare.com/zh-tw/plans/

Pro方案是每月20美元,也就是大概臺幣600元。這樣看來還不如去買個域名可能還比較便宜。

接著我試著搜尋其他CDN的方案,基本上也都是付費為主。部分號稱免費的服務,大多都是綁定特定內容平臺,例如WordPress。而且此時只是域名跟CDN免費,內容平臺的功能還是要收費的。

簡單來說,使用部分域名來做CDN的做法,看來也是行不通。


小結 / In closing

雖然CDN功能非常強大,但要用CDN也沒那麼容易。最大的門檻在於你需要購買一個完整的網域,而這個網域主要是供CDN使用。如果只想讓子網域、特定域名使用CDN,目前看來還不如直接再去買個專用的域名。

至於CDN未來會不會下放部分域名CDN的功能,那就讓我們繼續看下去吧。


最後本篇的問題是:你看過Cloudflare的驗證畫面嗎?你在哪裡看過的呢?

歡迎在下面留言喔!