為什麼我的 CloudFront 分發傳回「來自 CloudFront 的 X-Cache:Miss」回應?

1 分的閱讀內容
0

我將 Amazon CloudFront 分發和來源設定為快取物件,但是我的分發傳回「來自 CloudFront 的 X-Cache:Miss」回應。為什麼會發生這種情況? 該如何才能避免此回應?

解決方法

若要診斷「來自 CloudFront 的 X-Cache:Miss」回應和進行疑難排解,請檢查下列項目:

接收請求的是哪個邊緣節點?

透過 CloudFront 請求物件之後,物件只會在收到請求的邊緣節點中快取。如果向另一個邊緣節點發出後續請求,則另一個邊緣節點將不會有該物件的快取版本。此案例會傳回「來自 CloudFront 的 X-Cache:Miss」回應。

若要判斷回應是來自一個邊緣節點還是來自多個邊緣節點,請將多個請求從同一個用戶端傳送至相同物件。然後,檢查建立連線的 IP 地址。對 IP 地址執行反向 DNS 查詢,以判斷請求將前往哪個邊緣節點。

您也可以在向 CloudFront 分發發出請求之後,檢查 “x-amz-cf-pop” 回應標頭的值以確定邊緣節點。

請求物件的頻率是多久?

如果沒有經常請求邊緣節點中的物件,CloudFront 可能會在物件到期日之前移除該物件。如需 CloudFront 何時移出物件的詳細資訊,請參閱管理內容在快取中保留的時間長度 (到期)

如果您看到間歇性的「來自 CloudFront 的 X-Cache:Miss」回應,則 CloudFront 可能會因為不常請求而移除該物件。

CloudFront 分發是否設定為轉寄任何標頭、Cookie 或查詢字串參數?

如果您的分發設定為轉寄標頭、Cookie 或查詢字串參數,則分發會根據這些參數快取請求。這些參數會減少從快取提供的請求數。

例如,如果兩個存取物件的請求在查詢字串參數中具有不同的值,則第二個請求不會從快取中提供。第二個請求會傳回「來自 CloudFront 的 X-Cache:Miss」回應。

若要確定轉寄標頭、Cookie 或查詢字串參數是否會造成該回應,請將 CloudFront 分發設定為不將這些參數轉寄至來源。然後,檢查問題是否仍然存在。

如果在分發不再轉寄這些參數之後,問題就解決了,則至少有一個參數會造成該回應。不要將 CloudFront 設定為轉寄各種參數,而是只將您希望 CloudFront 轉寄的特定參數新增至允許清單。

回應是否儲存在瀏覽器快取中?

請求傳回「來自 CloudFront 的 X-Cache:Miss」回應之後,瀏覽器可能會對後續請求提供相同的回應,因為它儲存在瀏覽器快取中。

若要確認回應是否儲存在瀏覽器快取中,請清除瀏覽器快取並針對相同物件發出新請求。

**注意:**若要確定瀏覽器快取物件的時間長度,請檢查物件上是否設定了任何 Cache-Control 或到期標頭


AWS 官方
AWS 官方已更新 2 年前