Apache-2.2

用於記憶體 REST api 的 CDN

  • August 4, 2011

我正在對 CDN 提供商進行一些研究,但是我很難找出哪些可用,它們到底提供了什麼,以及它們是否適合我的目的。希望大家能給我一些建議:-)

我們在 Amazon EC2 實例上託管一個公共 REST API。每個呼叫都是動態​​的和 CPU 密集型的,但通常活動相當穩定。然而,經常有許多使用同時請求相同資源的短而高的峰值。例如,當某人在部落格或推特上發布了指向資源的連結並且每個人都點擊它之後,就會發生這種情況。

許多資源不會經常更改,並且我的伺服器正在發送明確的 Cache-Control max-age 標頭,指定每個資源可以並且應該被記憶體的時間。我需要一個 Web 記憶體/反向代理/CDN,它可以很好地檢查記憶體控制標頭並記憶體這些伺服器呼叫,這樣如果 1000 個客戶端在一分鐘內請求相同的資源,我的伺服器只需服務一次,或者至少不是1000次。

此外,CDN 應該能夠記憶體任何 HTTP GET 請求,而不管內容類型或 URI。文件大小的限制沒有問題;輸出通常簡短而緊湊。我今天在試驗 Cloudflare;但是它們只記憶體基於 URI 的“文件副檔名”的靜態文件,這使得它對大多數 REST api 完全沒用。最後但並非最不重要的一點是,我是一家小型初創公司,因此最好是負擔得起並且可以上下擴展的東西。

哪些供應商可能符合這些要求?感謝您的任何經驗/建議。

任何能夠“獲取源”的 CDN(這是 CDN 行業術語,我們大多數人都將其稱為反向代理)應該滿足您的需求。在低成本、按使用付費的 CDN 中,我知道這些 CDN 具有以下功能:

請注意,使用 Akamai 作為 CDN 的 Rackspace Cloud Files 僅支持上傳到其伺服器的靜態源文件。

一個癥結可能是最小記憶體壽命。快速攪動的內容會給 CDN 帶來問題,CDN 旨在提供靜態內容。因此,如果您設置“Cache-Control: max-age=5”,特定的 CDN 可能會將其更改為某個最小值,例如 3600,或者根本不記憶體它,而只是將請求傳遞回您的來源。

如果沒有按使用付費的 CDN 提供盡可能短的記憶體生命週期,則您可能需要查看契約 CDN 服務。或者,您最好的選擇是設置VarnishNginx以在您的一個或多個 EC2 實例上進行記憶體。

引用自:https://serverfault.com/questions/295875