如果使用 CDN 後網站仍然很慢,請檢查這些常見的 CDN 問題。
閱讀本文後,您將能夠:
複製文章連結
內容傳遞網路 (CDN) 是一組分散式伺服器,可快取或儲存 Web 內容的副本,以便快速傳遞給終端使用者。CDN 除了快取外,還可以透過多種方式加速內容傳遞並改善使用者體驗,例如協助視訊串流、動態內容,以及SSL 加密和驗證。
任何網站都可以從 CDN 中受益。CDN 位於終端使用者和來源伺服器之間。它們會先利用快取中的內容來回應使用者的請求,若快取中沒有所需內容,才將請求轉發給來源伺服器。這樣可以讓網站對使用者而言載入速度更快。這有點像是去雜貨店買食物,比開車穿越整個國家、親自造訪多家農場和工廠來採購一週的食材要快得多。
大多數情況下,註冊 CDN 應能快速使網站更快、幫助網站營運者節省頻寬成本、提高網站可靠性,並增強對某些網路攻擊(例如 DDoS 攻擊)的抵抗力。然而,有時候 CDN 問題會阻止 Web 內容享受這些好處。以下是一些潛在的 CDN 問題、可能導致這些問題的因素,以及解決這些問題的建議。
許多問題可能會導致網站在使用 CDN 時無法獲得效能提升,甚至速度變慢。
缺乏全球覆蓋:根據所使用的 CDN 類型,不同地區的效能可能會不一致。務必使用能夠在網路上所有位置快取內容,並且在全球各地靠近終端使用者的 CDN。
來源伺服器問題:如果 CDN 無法從來源伺服器取得內容,則無法快取或提供內容。當來源伺服器停機,或當來源伺服器和 CDN 之間的流量陷入網路瓶頸時,可能會發生這種情況。
未從來源伺服器載入動態內容:動態內容無法快取,因此如果來源伺服器無法正確回應請求,無論 CDN 快取行為如何,頁面都可能載入緩慢或載入失敗。某些 CDN(例如 Cloudflare 的 CDN)整合了其他服務,可以加速動態內容的交付。
檔案未最佳化:根據 CDN 的限制,可能不會快取非常大的內容或某些檔案類型。確保所有內容都經過最佳化,以實現快速傳遞和良好的使用者體驗。許多 CDN 具有用於最佳化、「縮小」(減少檔案大小)或壓縮內容的功能。
轉譯阻塞資源:這些資源是頁面中阻止頁面其餘部分載入的元素。例如,層疊樣式表 (CSS) 檔案就是轉譯阻塞資源。如果頁面的其餘部分快取正常,但 CSS 檔案快取異常,則必須先從 Web 伺服器取得 CSS 檔案,然後才能從快取中載入其他頁面元素。這會降低頁面載入速度。請確保已快取轉譯阻塞資源,或重新建置頁面架構,避免不必要的資源載入或放在最後載入。
未快取第三方指令碼:許多網站整合了其他來源的指令碼;這些來源可能不使用相同的 CDN。如果這些第三方指令碼的來源伺服器地理位置遙遠、未經過最佳化或過載,這些指令碼可能需要更長的時間才能載入。如果指令碼是轉譯阻塞資源,可能會減慢整個頁面的速度。使用 Chrome 開發人員工具評估哪些內容載入緩慢以及其來源。考慮替換那些持續拖慢頁面速度的指令碼,或使用透過 CDNJS(一個免費的內容分發網路,提供數千個 JavaScript 和 CSS 庫)託管的指令碼。
CDN 快取命中率低:在 CDN 快取中,「快取未命中」意味著在 CDN 中找不到請求的內容,必須從來源伺服器擷取。「快取命中」是指在快取中找到請求的內容並從快取中提供該內容。快取命中率衡量特定網站的命中次數與未命中次數之間的關係。較低的快取命中率意味著大部分網頁內容未從快取中獲取,使用者的瀏覽器必須從來源伺服器取得內容。每次快取未命中還可能產生網站的輸出費用(具體取決於託管服務提供者),這將導致這些網站的營運成本增加。
低快取命中率可能有幾個原因:
請記住,快取命中率並非衡量網站效能的唯一指標。網站效能的整體視角還包括 Core Web Vitals 以及影響使用者體驗、SEO 和 AI 最佳化的其他指標。
如果內容載入速度很快,但卻是錯誤的內容,未反映最近的更新或更改,則可能是快取內容的存留時間 (TTL) 設定過高。TTL 是一種設定,以秒為單位,用來決定某個內容應該被快取多久,之後 CDN(或瀏覽器)才會重新整理其儲存的副本。如果某些內容更新的頻率不夠高,可以考慮降低它的 TTL。或者,也可以嘗試清除快取,讓 CDN 從來源伺服器重新擷取內容。
經常更新的內容可能需要特殊的快取規則。在某些情況下,這類內容根本就不應該被快取。Cloudflare 提供了一個「清除」功能,可讓您立即從快取中清除某個網頁的內容。
如果一個網域及其所有子網域都沒有指向 CDN,那麼與這些網域相關的內容就不會被快取,網站也就無法獲得任何效能上的提升。
請確保子網域已正確設定。子網域(透過 CNAME 記錄設定)必須單獨進行設定。如果某個子網域沒有放在 CDN 後面,則即使主網域已經設定好,該子網域的內容也不會被快取。
CDN 通常為網站提供 SSL 憑證。SSL 憑證有助於驗證使用者與網站的連線,加密使用者輸入的敏感資料,並防止使用者瀏覽器出現安全警告。但有時網站會提供「混合」內容——網頁上的某些內容透過 SSL 連線提供,而某些內容則不會。使用者可能會收到有關頁面安全性的瀏覽器警告,頁面可能無法載入,或者頁面載入速度可能會變慢(因為瀏覽器嘗試發起 TLS 交握但失敗了)。
如果網頁包含來自外部來源或 SSL 憑證中未列出的子網域的內容,則可能會出現這些錯誤。Chrome 開發人員主控台可以幫助開人員追蹤混合內容錯誤:開發人員可以查看內容的載入位置以及所使用的 URL。
其他 SSL 錯誤可能與網域的憑證有關。在此處瞭解常見的 SSL 問題。
需要有關 Cloudflare CDN 的支援?歡迎加入 Cloudflare 社群,免費獲取支援,並向經驗豐富的 Cloudflare 使用者學習。
CDN(內容傳遞網路)是一組分散式伺服器,儲存網頁內容的副本,以便快速傳遞給使用者。除了快取外,CDN 還有助於加速內容傳遞,並透過支援串流、動態內容、DDoS 緩解及 TLS 使用的服務來改善使用者體驗。
CDN 位於終端使用者和來源伺服器之間,可加速網站內容傳遞,從而幫助使用者更快載入網站。CDN 透過縮短使用者與其請求內容之間的距離,並最佳化檔案以加快交付速度來實現這一點。
多種問題都可能導致 CDN 效能緩慢,包括缺乏全球覆蓋範圍、來源伺服器問題、動態內容載入不正確、檔案未最佳化、轉譯阻塞資源、未快取第三方指令碼或低快取命中率。
低快取命中率表示大部分網頁內容並非從 CDN 的快取中提供,而是迫使使用者的瀏覽器必須從來源伺服器重新擷取內容。根據該網頁的架構而定,這可能會導致網頁載入速度變慢,並且由於資料輸出費用的增加,也可能造成更高的營運成本。
快取命中率低可能是由於快取規則設定不正確、基於 URL 類型(例如查詢字串)的資產快取層級不同,或來自來源伺服器的快取控制標頭與 CDN 快取規則之間存在衝突造成的。
如果快取內容的存留時間 (TTL) 設定過高,則可能會出現過期內容。TTL 決定了在 CDN 或瀏覽器重新整理內容復本之前內容的快取時間。降低 TTL 或清除快取可以解決此問題。
開始使用
關於 CDN
CDN 功能
CDN 伺服器
CDN 詞彙
學習中心導覽