CDN(內容傳遞網路,Content Delivery Network)說白了,就是把你網站的圖片和頁面,提前複製一份放到散布在世界各地的許多「就近分店」裡——訪客打開網站時,不必每次都大老遠跑回你那一台主伺服器去取,而是就近從離他最近的那家分店拿,所以更快。這些遍布各地的分店,技術上叫節點(edge node,邊緣節點)。對一個溫哥華的小生意來說,CDN 最實在的三個好處是:連本地訪客打開網站都更快、網站在流量突然暴漲(無論是被惡意攻擊,還是上了本地新聞一夜爆紅)時多了一層緩衝、以及如果你有海外或亞洲客戶,他們訪問你網站的速度能明顯改善。這篇文章不教你自己去設定,而是幫你弄清楚 CDN 到底是什麼、和你的網站伺服器、域名是什麼關係,以及你這門生意到底用不用得上它。
這篇文章適合誰看? ❓
如果你有公司網站,又遇到過這幾種情況,這篇值得花幾分鐘:有人建議你「給網站加個 CDN」,你卻不知道那是什麼、加了有沒有用;客戶反映你的網站打開慢,尤其是人在外地或國外的客戶;你做的生意每隔一陣就會有一波流量高峰(節日促銷、上了新聞、辦活動);或者你擔心網站被攻擊。如果你的網站只服務本地、流量一直很平穩,也從沒遇到打開慢的問題,那這一篇你可以快速掃一眼結尾的判斷標準就好。
一句話講清楚:CDN 到底是什麼
先打個比方。假設你開了一家很受歡迎的麵包店,本店在溫哥華市中心。客人遍布大溫各地,但每個人想買麵包都得專程開車到市中心你這家本店——遠的客人嫌遠,碰上高峰還得排長隊。於是你想了個辦法:在 Burnaby、列治文、北溫……各開一家就近分店,把同樣的麵包提前備到每家分店。從此本拿比的客人就近到本拿比那家拿,列治文的就近去列治文那家,又快又不擠。
CDN 做的就是這件事,只不過「麵包」換成了你網站上那些可以提前複製的內容——圖片、影片、網頁樣式、不常變動的頁面。CDN 服務商在全球許多城市都設有機房,這些遍布各地的伺服器就是前面說的節點(edge node)。訪客打開你的網站時,系統會自動判斷他在哪裡,把內容從離他最近的那個節點發出去,而不是每次都回到你唯一的那台主伺服器。距離短了,等待自然就短。你也可以把它想成自來水管網裡的加壓站:水源(你的主伺服器)只有一個,但沿途布了許多加壓站,越靠近用戶的地方水壓越足、出水越快。
這裡要先分清一件容易混淆的事:CDN 不是用來取代你的網站伺服器的。你的網站真身——程式、資料庫、後台——始終住在那台主伺服器(業內叫「源站」)上;CDN 只是替你把其中那些可以複製的部分,多備了很多份放在離客人更近的地方。想先弄明白主伺服器本身是什麼,可以看我們另一篇什麼是網站伺服器。
對一個本地小生意,CDN 到底有什麼用
很多人一聽「全球傳遞」,就以為 CDN 只對做外貿、賣到全世界的公司才有意義。其實不然。下面三個好處,前兩個連只做本地的小生意都用得上,第三個才是只對一部分人有關係。
一、連本地訪客都打開得更快
就算你的客人全在大溫本地,「快」依然值錢。沒有 CDN 時,列治文的客人打開你的網站,請求要一路跑到你主伺服器所在的機房(可能在多倫多,甚至在美國),取完再原路返回——這一來一回是有延遲的。有了 CDN,圖片和頁面就近從本地節點發出,少了這趟長途往返,頁面「唰」地一下就出來了。
打開快不快,不只是體驗問題,也和搜尋排名沾邊——網頁速度是 Google 在排序時會參考的因素之一(只是其中一個因素,並非決定性的)。更現實的是:訪客沒耐心。一個打開慢半拍的網站,客人可能還沒看到你的內容就退出去了,等於白白把上門的人推走。
二、流量突然暴漲時,多一層緩衝
這是 CDN 對小生意最容易被低估、也最值錢的一個作用。我們在另一篇講網站遭受攻擊的文章裡打過一個比方:所謂 DDoS 攻擊,就像在繁忙的 Robson 街上,突然湧入數千名並非真實顧客的人,把你的店鋪擠得水洩不通,讓真正想購物的客人反而進不去。
把這個畫面接著往下想:如果你只有一扇門(一台主伺服器),這群人一擁而上,門就被堵死了,誰也進不來。而 CDN 等於在各地開了成百上千家分店——那群假客人一來,會被分散到各地的節點上,每家分店只攤到其中一小部分,誰也堵不死全部。擋在前面的那一大片節點先把雜亂的流量吸收、過濾掉,真正乾淨的請求才會被放行到你的主伺服器,本店的真客人於是還進得來。道理很樸素:沒有「唯一的一扇門」可以被堵死,自然就難被一次衝垮。
不過有一點必須說清楚,免得期待落空:CDN 不等於「防得住一切攻擊」。它是一層很有用的緩衝,但不是護身符。真正穩妥的做法,是 CDN 配合限流(rate limiting,限制單個來源短時間內的請求次數)和一道WAF(Web 應用防火牆,專門攔截帶攻擊意圖的請求)一起上——多層防線疊在一起,才談得上「扛得住」。對小生意來說,把它理解成「一道有用的緩衝墊,不是金鐘罩」就剛剛好。
同樣這層緩衝,也幫得上「好事突然來」的時候:比如你家餐廳被本地媒體推薦、或某條貼文意外走紅,一夜之間訪客暴增。沒有 CDN,主伺服器可能被這突如其來的人潮直接壓垮,偏偏在最該接住生意的時刻掉鏈子;有了 CDN,大部分人看到的內容由各地節點分擔發出,網站更容易穩穩扛過這波高峰。
三、有海外 / 中國 / 亞洲客戶的,才特別有關係
這一條只對你們當中的一部分人重要。如果你的客戶裡有相當一批人在海外,尤其在中國或亞洲,那麼「跨境訪問慢」會是個實實在在的問題——資料要漂洋過海繞地球大半圈,慢、甚至偶爾打不開都不奇怪。這種情況下,選一個在目標地區設有節點的 CDN,改善會相當明顯:當地客人就近從當地節點取內容,體驗和訪問一個本地網站差不了多少。反過來說,如果你的客人清一色在大溫本地,這一條對你的意義就沒那麼大——這也正是「CDN 只對做全球生意才有用」這個誤解需要被糾正的地方。
CDN、網站伺服器、名稱伺服器:三者怎麼分工
這三個名詞常被混為一談,其實各管一段,理順了就清楚了:
- 網站伺服器(源站):你網站的真身住的地方,程式和資料庫都在這裡。它是「本店」。
- CDN:把本店裡可以複製的內容,提前備份到各地分店(節點),讓客人就近取貨。它是「連鎖分店網絡」。
- 名稱伺服器(Name Server):決定別人輸入你的網址後,被指引到哪裡去取內容。它是路口的「指路牌」。
三者是怎麼串起來的?關鍵就在那塊指路牌。把網站接入 CDN,通常要做的一步,正是回到你買域名的註冊商後台,把名稱伺服器改成 CDN 提供的那一組——這樣全世界的訪客被指引的第一站就變成了 CDN,由 CDN 就近把內容發給他們,需要時再回源站取最新的部分。這一步屬於域名解析層面的改動,牽一髮動全身,設定錯了可能整站連同公司郵件一起出問題,所以更適合交給熟手來做。想了解這塊「指路牌」是怎麼回事,可以看什麼是名稱伺服器。
什麼時候該認真考慮給網站上 CDN
不是每個網站都非上 CDN 不可。我們的建議是,符合下面任何一條,就值得認真考慮:
- 客戶反映網站打開慢,尤其是身在外地或國外的客戶;
- 你的生意會有可預期的流量高峰——節假日促銷、季節性旺季、辦活動、投廣告引流的落地頁;
- 你擔心網站被攻擊,或曾經被流量異常搞到當機;
- 你有相當一部分客戶在海外、中國或亞洲。
反過來,如果你只是一個純本地、流量平穩、也從沒遇到過打開慢的介紹性網站,那 CDN 對你未必是當務之急,錢和精力也許先花在別處更划算。這是一個需要結合你實際情況來下的判斷,不存在「每個網站都該上」或「上了就萬事大吉」這種一刀切的答案。
5U Website 怎麼幫客戶處理
要不要上 CDN、上哪一家、怎麼和你現有的伺服器與域名解析銜接,這正是我們日常在做的判斷。我們做溫哥華企業的網頁設計、網站製作與託管這些年,給客戶的建議從來不是「流行什麼就上什麼」,而是看你的網站到底面對什麼樣的訪客、有沒有流量高峰、客人都在哪裡。該上的,我們會替你選好合適的 CDN、設定好節點快取策略,並穩妥地完成那一步名稱伺服器切換,盡量避免中途的服務中斷;用不上的,我們也會照直說,不讓你為不需要的東西花冤枉錢。需要的話,我們還會把 CDN 和限流、WAF 等防禦一起規劃,讓它們各司其職。
把這件事交給我們
CDN 從來不是「開了就一勞永逸」的開關——選型、設定、和域名解析的銜接、後續維護,每一步都有講究,設定錯了反而可能幫倒忙。5U Website 提供的網頁設計、網站製作及託管服務裡,就包含 CDN 的評估、設定與維護。如果你正被「網站打開慢」「擔心被攻擊」或「海外客戶訪問不暢」困擾,寫一封郵件說說你的情況,我們通常一到兩個工作日內回覆。
最早發佈於:
