2014-03-02 52 views
0

我有一個debian實例,它具有允許網絡通信的網絡防火牆(tcp:80,443)。與GCE的HTTP連接在初始連接後掛起

在這個例子中,我用非常標準的配置設置了Nginx和Rails獨角獸。當我從瀏覽器中點擊服務器來檢索靜態文件時,GCE會立即返回該文件而不會出現任何問題。但是,如果您將服務器閒置5分鐘左右,並嘗試點擊相同的 URL /文件,則該請求會在返回之前掛起大約5-7分鐘。與此同時,其他網址將立即返回,而不是我之前檢索的網址。掛起的請求最終將在5-7分鐘後返回。

我檢查了日誌,Nginx和Unicorn似乎得到了這個請求,但是響應似乎在網絡的某個地方丟失了。我懷疑GCE可能會做一些緩存,在一段空閒時間後過期,這會導致第二個響應中的長時間延遲。

由於我在非GCE虛擬機上重新創建了相同的堆棧,並且它們都按預期工作,所以我將問題縮小到GCE。 (順便說一句,標準配置包括關閉Nginx和獨角獸的所有緩存)

我是否缺少一個配置,我應該設置?

回答

0

我遇到與Apache/Jetty服務器相同的問題。我剛剛做的是創建一個非常惱人的循環來喚醒服務器。我猜想發生的事情是服務器睡眠,最初的不響應是服務器喚醒。我現在擁有的是index.html重定向到重定向到我的Java應用程序的redirect.html。當前兩個文件被擊中時,應用程序啓動並運行就緒,可供使用。有點hackey和原始。如果任何人有更好的解決方案,我全是耳朵!