Linux

使用 Nginx 的 504 錯誤網關

  • March 28, 2013

我有一個託管在 linux VPS 伺服器上的 J2EE 應用程序。我使用 nginx 作為 Web 伺服器,使用 tomcat6 作為應用程序伺服器。有時,網站會一直等待載入,有時甚至會拋出 504 bad gateway nginx 錯誤。在這幾分鐘(通常為 3-5 分鐘)的停機時間內,如果我嘗試通過 SSH 訪問伺服器,則會收到連接超時錯誤。當網站在幾分鐘後開始工作時,我注意到 tomcat、nginx 仍然在與以前相同的程序 ID 上執行。我不需要重新啟動 tomcat 或 nginx,它會自行開始工作。此外,一旦站點再次執行,我還注意到與伺服器的 SSH 連接也成功。

我不確定問題到底出在哪裡?是伺服器的連接問題還是我的配置中的一些錯誤?任何見解將不勝感激。

您正在使用具有 1GB RAM 和 2GB 交換空間的 Xen VPS,並且您的 VPS 提供商對所有其他客戶的 RAM 交換比率相同,包括最低層客戶的 128MB RAM 的 256MB 交換空間。

對於 VPS 主機來說,這似乎是一個非常高的交換記憶體比率,特別是如果他們提供像 128MB 記憶體和 256MB 交換這樣的低層,當毫無戒心的新手使用者使用時,它們總是會耗盡記憶體。

聽起來您收到的 Bad Gateway 錯誤是由您的 J2EE 應用程序的回复延遲過長引起的,這可能是由所有正在進行的交換引起的。

你最好的選擇是測試伺服器的性能。您可能應該首先執行dd以測試磁碟吞吐量,然後使用某種 UNIX 基準測試工具。

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