2013-07-20 54 views
1

我想圍繞雲端和CDN如何工作。 如果我有一個文件,並且緩存控制標頭設置爲1年,並且我使用亞馬遜雲端作爲我的CDN。 如果我刪除文件會發生什麼?由於雲端服務器緩存它會繼續提供服務嗎?它會在全球所有地區提供服務,還是僅在請求一次後纔會將其緩存到邊緣服務器上。如果在雲端後面可以訪問被刪除的文件

例子我有1年

我從一個位置訪問該文件在紐約

我再刪除文件設置緩存控制頭後面亞馬遜雲鋒 blue.jpg的文件。

如果我然後再次訪問包含來自紐約的文件的頁面,該文件將作爲其緩存嗎?

如果有人用俄羅斯莫斯科的文件訪問該頁面,該怎麼辦?他能夠查看該文件嗎?

感謝您的幫助:)

回答

1

CloudFront的僅僅是靠近你的用戶緩存的集合。每個邊緣位置獨立運行。

默認情況下,CloudFront服從您的http緩存控制標頭。如果您設置標題,以便文件不會過期一年,則CloudFront將繼續爲該文件提供一年服務,而不會檢查回到您的源服務器。

由於每個邊緣位置獨立運行,在您的示例中,紐約將繼續提供該文件,但莫斯科會將該文件刪除(404)。正如你可以成像,這可能會導致不同的用戶看到不同的內容。

有策略可以避免這個問題。

從CloudFront的文檔(http://aws.amazon.com/cloudfront/#details):

對象版本控制和緩存失效 你有兩個選擇更新在亞馬遜的CloudFront的邊緣位置緩存文件。您可以使用對象版本控制來管理對內容的更改。要實現對象版本控制,您需要在源服務器中爲每個版本的文件創建一個唯一的文件名,並在網頁或應用程序中使用與正確版本相對應的文件名。通過這種技術,Amazon CloudFront可以緩存所需對象的版本,而無需等待對象過期,然後才能提供新版本。

您也可以隨時通過調用無效API從所有Amazon CloudFront邊緣位置刪除文件的副本。無論您在源服務器上爲該文件設置的過期期限,此功能都會從每個Amazon CloudFront邊緣位置刪除該文件。如果您需要一次刪除多個文件,則可以在XML文檔中發送一個文件列表(最多1,000個)。失效功能旨在用於意外情況下,例如,更正您上傳的視頻的編碼錯誤或更改您網站CSS文件的意外更新。但是,如果您事先知道您的文件將經常更改,建議您使用對象版本控制來更新文件。這種技術使您可以更好地控制更改何時生效,還可以避免使對象失效的潛在費用。

相關問題