3

VPSで実行されているRuby on Railsアプリケーションがあります。この夜、nginx がダウンし、「502 Bad Gateway」と応答しました。Nginx エラー ログには、次のメッセージが多数含まれていました。

2013/10/02 00:01:47 [error] 1136#0: *1 connect() to unix:/app_directory/shared/sockets/unicorn.sock failed (111: Connection refused) while connecting to upstream, client: 5.10.83.46, server: www.website.com, request: "GET /resource/206 HTTP/1.1", upstream: "http://unix:/app_directory/shared/sockets/unicorn.sock:/resource/206", host: "www.website.com"

以前のエラー メッセージは 5 日前に表示されていたため、これらのエラーは突然発生しました。

問題はユニコーンサーバーにありました。次に、ユニコーンのエラー ログを開いたところ、問題とは関係のない情報メッセージがいくつか見つかりました。生産ログも役に立たなかった。

経由でサーバーを再起動しようとしましservice nginx restartたが、役に立ちませんでした。また、ユニコーンの保留中のプロセスはありませんでした。

アプリケーションを再デプロイすると、問題は解決しました。サーバーがダウンする 10 時間前に同じバージョンのアプリケーションをデプロイしたため、奇妙です。

将来、このような「魔法の」ケースを防ぐ方法についての提案を探しています。あなたが提供できる助けに感謝します!

4

1 に答える 1

2

nginx がユニコーン サーバーにアクセスしようとしたときに、ユニコーン サーバーが実行されていなかったようです。

これは、VPS の再起動、ユニコーン プロセスでの何らかの例外、または空きメモリ不足によるユニコーン プロセスの強制終了が原因である可能性があります。(IMHO VPS の再起動が最も考えられる理由です)

ps aux | grep unicorn

また、サーバーの稼働時間を確認することもできます

uptime

次に、次のことができます。

  • VPS 起動時にユニコーンを起動するスクリプトを追加
  • サービスとして追加する
  • いくつかの監視プロセスを実行します ( monitなど)
于 2013-10-03T09:02:26.873 に答える