2015-12-22 64 views
5

我們都知道CloudFlare具有一項功能,如果您的服務器處於脫機狀態,它將開始爲您的網站提供緩存版本 - 無論是否出現嚴重錯誤,或者您是否正在執行簡單的重啓。通過AWS CloudFront繼續重啓

我一直在尋找網絡的高低,如何用CloudFront做同樣的事情,但我似乎無法挖掘出與此事有關的任何資源。

你有什麼建議嗎?

+0

CloudFlare擁有您想要的功能時,您想使用CloudFront的任何原因?我發現CloudFlare通常比CloudFront更好,除了一些特定的用例。 –

+0

@MarkB我只想看看CloudFront是否可能 –

回答

3

CloudFront將從您的來源獲取您的資產,並在首次查看器請求時將其存儲在邊緣位置,並將緩存版本返回給後續查看器請求。

對象在邊緣位置過期後,CloudFront將再次與原點聯繫以確定緩存是否具有該對象的最新版本,如果不是,則獲取最新版本。如果您的原始服務器目前不可用,CloudFront會將該對象的[stale]緩存版本返回給查看器。

請參閱此處的CloudFront文檔 - http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html#HTTPStatusCodes-no-custom-error-pages

+0

是的我意識到這些事實但是如何將交通路線作爲後備路線? –

+0

不知道我是否理解你的問題。我們如何將流量路由到哪裏? –

+0

我最初的問題是關於如何在服務器關閉時將流量路由到CloudFront。 –

3

將您的流量始終指向CloudFront 。 CloudFront將根據需要從您的服務器提取內容(即,如果CloudFront已具有足夠新鮮的緩存副本或其他資源,則它將提供該緩存副本)。如果您的服務器由於重新啓動而關閉或出現問題,並且CloudFront具有頁面的緩存副本,則CloudFront將提供緩存副本,無論此緩存副本多麼新鮮。

如果您需要在服務器關閉之前確保某個特定資源位於CloudFront的緩存中,請使用Web瀏覽器打開該頁面。這將使CloudFront從其緩存中提供頁面或從原始服務器中提取該頁面;無論如何,最終結果都是該頁面被緩存在CloudFront中。

+0

因此,沒有辦法根據健康檢查有條件地路由那裏的流量? –

+1

說你的網站是www.xyz.com。 www.xyz.com的DNS條目需要指向某些東西。動態地切換DNS,以便在您的託管服務提供商指向它的一刻,並在下一刻指向CloudFront時不是可行的選擇。 DNS傳播時間通常比服務器重新啓動所需的時間更長。因此,www.xyz.com應該*總是*指出做健康檢查的事情。您可以添加自己的健康檢查服務器,並將www.xyz.com指向它,但CloudFront已經按照我所述執行了健康檢查,因此只需在CloudFront指向www.xyz.com即可。 – George

2

Cloudfront只是緩存靜態內容。它不過是一個CDN。

如果您的服務器需要重啓,我認爲它是一個標準的Web棧。如果是這樣,你應該在多臺機器上使用ELB。如果您認爲cloudfront正在完成大部分工作,您可能會脫離微型實例。

如果您有一個靜態網站,只需使用S3。它不會重新啓動,並且您可以輕鬆地通過雲端CDN進行CDN。無需使用ELB