這個問題可能有點主觀,但我認爲它會提供一些有價值的具體信息和解決方案來代理到heroku和調試延遲問題。如何在Heroku上使用REST API後端優化服務靜態文件
我有一個使用Sinatra/Mongo構建的應用程序,它在api.example.com上公開了一個REST API。在Heroku Cedar上。通常,我通過www上的nginx提供靜態文件,並通過api子域向/ api發送代理請求,以避免跨域瀏覽器投訴。我有一個rackspace雲實例,所以我暫時將前端放在nginx上並設置代理。現在代理的延遲是非常可怕的,每3或4個請求需要1分鐘以上的時間,否則〜150ms。直接進入API(瀏覽器到api.example.com)的平均延遲時間約爲40毫秒。雖然我知道設置並不理想,但我沒有想到它會那麼糟糕。
我認爲這部分是由於從機架空間代理 - 服務器可能在西海岸 - 到亞馬遜ec2東部的heroku。我現在的想法是,獲得一個亞馬遜ec2實例,並將其代理到我的heroku應用程序將緩解這個問題,但我想以某種方式驗證這一點,而不是盲目猜測(它也更昂貴)。有沒有合理的方法來確定長延遲來自哪裏?此外,有關如何構建此應用程序的其他建議?我知道我可以在Heroku上提供靜態文件,但我不喜歡我的API服務於我的前端的想法,寧願它們能夠彼此獨立地擴展。