Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
如何降低來自 CloudFront 的緩慢回應延遲?
1 分的閱讀內容
0
從 Amazon CloudFront 下載物件或影像時,我看到高延遲。接收「X-Cache:Miss from cloudfront」回應的請求載入速度會比接收「X-Cache:Hit from cloudfront」回應的請求慢。為什麼會發生這種情況? 我該如何解決這個問題?
解決方法
當請求傳送至來源時,CloudFront 會傳回「X-Cache:Miss from cloudfront」。從最近的邊緣節點提供請求時,CloudFront 會傳回「X-Cache:Hit from cloudfron」。由於有一道轉送至來源的額外步驟,「Miss」請求的載入速度可能會較慢。
若要避免將請求轉送至來源所產生的延遲,請檢查下列各項內容,以確保可從 CloudFront 邊緣節點提供請求:
- 請勿轉寄所有標頭、所有 Cookie 或所有查詢字串,因為這會導致 CloudFront 透過請求傳遞,而非快取。
- 請確認您對於很少變更的靜態內容 (例如 CSS 檔案) 以及經常變更的動態內容 (例如 JavaScript 檔案) 具有個別的快取行為。對於靜態內容,請避免根據來源提供內容不需要的 Cookie、查詢字串或標頭進行快取。
**注意:**針對 Web 分佈,CloudFront 的預設是在邊緣節點快取物件時不會考慮 Cookie。如果您的來源傳回兩個物件,且它們僅與 Set-Cookie 標頭中的值不同,CloudFront 只會快取物件的一個版本。 - 針對在 CloudFront 查詢來源之前需要更多快取時間的路徑模式,延伸最小 TTL、最大 TTL 或預設 TTL。
- 如果您的來源使用 Cache-Control 標頭,請確認這些指令與發佈設定的最小 TTL、最大 TTL 或預設 TTL 一致。
- 如果您的來源使用 Expires 標頭,請確認標頭允許 CloudFront 視需要快取回應。
- 確認您的原始伺服器為 Date 和 Last-Modified 標頭欄位設定有效且正確的值。
- 限制對物件無效判定的使用。僅在必要時執行無效判定。
- 檢查請求物件的頻率。如果不經常請求物件,CloudFront 可能會從邊緣節點移除該物件。
如果您正在提供動態內容,而且您預期為您的請求提供「X-Cache:Miss from cloudfront」回應,請考慮下列事項以降低延遲,而不使用快取:
- 設定更多在地理位置上更接近申請者的原始伺服器。然後,設定單一延遲型路由 DNS 記錄 (例如 origin-latencybased-dnsrecord.example.com),以解決這些伺服器的問題。在 CloudFront 中,將 DNS 名稱 (例如 origin-latencybased-dnsrecord.example.com) 設定為您的分佈來源。此組態允許 CloudFront 根據請求所在的邊緣節點,以最低延遲從原始伺服器擷取內容。如果您使用 Amazon Route 53 做為 DNS 供應商,請參閱在 Amazon Route 53 中將其他區域新增至您的延遲型路由。
- 增加針對 CloudFront 來源保持連線的閒置逾時。此值指定 CloudFront 在關閉連線之前,與原始伺服器維持閒置連線的時間長度。預設的保持連線閒置逾時為五秒,但如果原始伺服器支援逾時,您可以設定更高的值至 60 秒。如果您的發佈將動態內容的請求轉送至來源,則增加逾時值有助於降低延遲。這是因為 CloudFront 不必為每個請求建立新的連線。
**注意:**一個來源可以有多個 IP 地址指派給它。若要跨多個來源 IP 地址使用持續連線,CloudFront 仰賴更高的請求率和增加請求頻率。這是因為請求會跨來源 IP 地址路由循環配置資源,而且每個 IP 地址的連線都會持續。
相關資訊
增加從 CloudFront 邊緣快取 (快取命中率) 提供的請求比例

AWS 官方已更新 3 年前
沒有評論
相關內容
- 已提問 1 年前lg...
- AWS 官方已更新 7 個月前
- AWS 官方已更新 3 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 3 年前