指南

什麼是 CDN?內容傳遞網路(CDN)白話解說

CDN(內容傳遞網路)是分布在許多城市的一組伺服器,保存你網站檔案的副本,包括圖片、腳本、樣式表,有時也包括整個頁面。當有人造訪你的網站時,會從離他們較近的地點取得內容,而不是從遠方的單一伺服器取得。這能讓頁面載入更快、減輕你自己伺服器的負擔,也讓網站更能應付流量高峰。

為什麼使用 AI 建置時 CDN 很重要

你可能從來不需要自己設定 CDN,因為許多託管平台會自動在你的網站前面放一層。但你仍然會感受到它的影響:

  • 速度。 頁面載入更快,訪客才會留下來,而且這也是搜尋引擎會考量的因素之一。請參閱如何讓你的網站更快。
  • 「為什麼我的修改沒有出現?」 發布更新後,舊版本的快取副本可能還會留存一小段時間。知道原因,就能省下很多困惑。
  • 隱私與正確性。 如果 CDN 快取了錯誤的內容,例如包含某位使用者詳細資料的頁面,下一位訪客就可能看到。了解什麼該快取、什麼不該快取,能幫你問對問題。

日常生活的比喻

想像一間麵包店只在一間店面販售全國的麵包。每位顧客,不論住多遠,都得等待從這一間店配送過去,而在忙碌的日子裡,排隊的人潮非常可觀。

CDN 就像是在全國各地的便利商店都鋪貨同一款麵包。顧客可以就近快速取得,而總店只需要偶爾補貨給這些門市。問題在於:當總店改了配方,門市仍會繼續賣舊的麵包,直到被通知更換或舊貨過期為止。

CDN 如何運作

  1. 你的來源(origin)。 你的網站放在主伺服器或託管平台上,這就是所謂的來源。
  2. 邊緣節點。 CDN 在許多地方設有伺服器,稱為邊緣節點(edge location)或存在點(point of presence)。
  3. 路由。 當訪客發出請求時,DNS 或網路路由會把他導向附近的邊緣節點。請參閱網域與 DNS 如何運作。
  4. 快取命中。 如果該邊緣節點已有最新的檔案副本,就會立即送出。
  5. 快取未命中。 如果沒有,邊緣節點會向你的來源取得檔案、送給訪客,並保留一份副本供下一位訪客使用。
  6. 過期。 每份副本保存的時間,由你的伺服器送出的快取標頭決定,或在被清除之前一直保留。

實例:一個有照片的作品集網站

一位攝影師的作品集有首頁、一個有 60 張大型圖片的相簿,以及一個聯絡表單。來源伺服器位於歐洲。一位在新加坡的訪客打開相簿。

  • 沒有 CDN: 每張圖片都要從歐洲傳過來。每個請求都要跨越半個地球來回一趟,相簿會慢慢載入。
  • 有 CDN: 第一位在新加坡附近的訪客,會讓當地的邊緣節點去取得並儲存這些圖片。之後該地區的每位訪客,都能從附近快速取得。

現在攝影師換掉首頁的主視覺照片並重新發布。以下是決定訪客能否看到新照片的關鍵:

/index.html                    → 快取時間短,經常檢查
/assets/index-3f9a2c.js        → 長時間快取
/assets/hero-8b41d0.jpg        → 長時間快取

現代建置工具(包括 Vite)會為檔案加上雜湊名稱,例如 hero-8b41d0.jpg。檔案內容一改變,名稱也會改變,因此頁面會請求一個任何快取都沒見過的全新檔案。HTML 頁面本身只快取很短的時間,所以很快就會指向新檔案。這就是同時兼顧長期快取與即時更新的標準做法。

聯絡表單則不同。表單提交會每次都送到伺服器,因此絕對不應該被快取。

該快取什麼、不該快取什麼

通常長時間快取通常短時間快取不要放在共用 CDN 中快取
圖片、字型、影片公開網站的 HTML 頁面登入後的頁面、儀表板
帶有雜湊名稱的 JavaScript 與 CSS偶爾變動的公開 API 資料任何含個人資料的內容
很少變動的可下載檔案表單提交、付款、任何 POST 請求

關鍵術語

術語意義
來源(Origin)你的主伺服器或主機,真正的檔案存放的地方。
邊緣節點 / PoPCDN 中就近服務訪客的據點。
快取命中 / 未命中邊緣節點有檔案 / 必須向來源取得檔案。
TTL存活時間(Time to live),即快取副本保存多久。
Cache-Control 標頭你的伺服器送出的指示,說明內容是否可以快取、可以快取多久。
清除 / 失效(Purge / invalidate)通知 CDN 立即丟棄快取副本。
快取破壞(Cache busting)內容變動時改變檔案名稱或 URL,讓快取抓取新版本。
延遲(Latency)距離與網路跳轉造成的延遲時間。

如果想了解更廣泛的快取(瀏覽器、伺服器與資料庫),請參閱什麼是快取。

常見的誤解

  • 「CDN 能讓一切都變快。」 它只加快檔案的傳送。伺服器上緩慢的資料庫查詢或緩慢的 AI 呼叫,仍然會很慢。
  • 「CDN 可以取代主機。」 它是放在你的主機前面。你仍然需要一個來源。
  • 「我更新了網站,所有人馬上就會看到。」 舊副本可能會在 CDN 和瀏覽器中暫時殘留。可以強制重新整理來確認,並使用雜湊檔名。
  • 「快取永遠是安全的。」 在共用快取中快取個人化頁面是真正的隱私風險。私人回應應標示為不可快取。
  • 「CDN 只有大公司才需要。」 許多主機平台即使是小型網站,也會免費附上 CDN,不需額外操作。

該問你的 AI 建置工具什麼

  • 「這個網站前面有 CDN 嗎?它快取了哪些檔案?快取多久?」
  • 「請確認建置後的 JavaScript、CSS 與圖片有雜湊檔名並設定長時間快取,HTML 則設定較短的快取時間。」
  • 「絕不要在共用快取中快取登入後的頁面或含個人資料的 API 回應。」
  • 「壓縮並縮小圖片,讓相簿載入得更快。」
  • 「我已發布更新但仍看到舊版本,這是瀏覽器快取還是 CDN 快取造成的?」

CDN 與 Mythex

在 Mythex 發布時,靜態前端會以靜態網站的形式部署,而官方文件也提到,CDN 快取在更新後可能會延遲一小段時間:如果重新發布後仍看到舊版本,請強制重新整理公開網址。這部分不需要額外設定。如果你連接的自訂網域,其 DNS 託管在 Cloudflare,文件會要求你把記錄設為「僅 DNS」而非代理,這樣 Mythex 才能正確簽發 HTTPS。請參閱文件中的如何發布與自訂網域,以及我們的網站託管指南。

常見問題

用簡單的話說,什麼是 CDN?

CDN(內容傳遞網路)是由分布在許多地點的伺服器組成的網路,這些伺服器保存你網站檔案的副本。訪客會從離他們較近的地點取得內容,而不是從你的主伺服器取得,因此頁面載入更快,主伺服器的負擔也更輕。

我更新網站後,為什麼還是看到舊版本?

通常是因為舊檔案的副本還留在快取中,可能在 CDN、瀏覽器,或兩者都有。瀏覽器端可以用強制重新整理解決;CDN 的副本會自行過期,或可以手動清除。建置工具會替變動的檔案取新名稱,大幅避免這個問題。

小型網站需要 CDN 嗎?

很多時候你其實已經有了,因為許多託管平台會自動在網站前面放一層 CDN。如果你的平台沒有,而且訪客分布在不同國家,加上 CDN 通常值得。

CDN 可以快取我的應用程式資料和登入後的頁面嗎?

CDN 可以快取任何被允許快取的內容,因此必須小心設定。圖片、腳本和樣式等公開檔案最適合快取。個人或登入後的內容通常不應該放在共用的 CDN 中,否則一位使用者可能看到另一位使用者的資料。

Mythex · Pricing · 用 AI 打造任何東西 · 網站與應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費的 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港)