簡體   English   中英

如何正確設置Amazon CloudFront緩存

[英]How to properly setup Amazon CloudFront caching

我正在使用S3存儲一堆圖像,並使用CloudFront緩存它們。 我遇到的問題是我的圖像未正確緩存。

如果我通過CloudFront鏈接檢查圖像的標題,它將在第一次嘗試中顯示MISS,並在所有后續嘗試中顯示HIT。 這是正常現象,但是如果我關閉瀏覽器,請離開幾個小時然后再試一次,它將顯示MISS。 因此,表明它僅在短時間內被緩存。

這是CDN上的示例圖片: http ://d711ds9nsj32q.cloudfront.net/static/8e1f8567e229e24e0782ed_1e994b9dc56ba092ecd2_5.jpg

怪異的行為是,如果您嘗試使用web-sniffer.net嗅探標頭,則每次都會看到MISS。 即使緩存控制是public, max-age=315360000並設置為10年后過期。

在Cloudfront上緩存10年的正確方法是什么? 我還缺少其他標題嗎?

編輯 :為了進行比較,這是imgur上的相同圖像 他們使用cloudflare,但是我看到的行為是正確的。 緩存完成后,我再也不會從任何計算機或附近位置看到任何丟失的消息。 除了一些(不重要)差異之外,我的標頭及其標題均相似。 任何幫助表示贊賞。

可能是您已將最小TTL設置為非默認值,並在該時間段內對其進行緩存,而不是在Cache-Control標頭中進行緩存。 我認為這不太可能,因為您可能已經考慮過它,並且因為它似乎在發行版中遵守了Cache-Control:no-cache(如果最小TTL是非默認值,則不會)。

更有可能的是,Cloudfront只是在一段時間后將您的物品逐出:

如果不經常請求位於邊緣位置的對象,則CloudFront可能會驅逐該對象(在其到期日期之前刪除該對象),以便為更受歡迎的對象騰出空間。

-來自本文

至於web-sniffer.net,您會注意到它發送了Cache-Control:no-cache標頭,這將使Cloudfront從源頭獲取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM