3

現在、仮想プライベート サーバーに Rails アプリをデプロイしています。

Capistrano、Nginx、およびパッセンジャーを使用して、サーバー上で Rails アプリを実行しています。

何らかの理由で、cap deploy:update を実行した後、更新されたコードをサイトに表示することができません。

デプロイは正常に行われ、コードは Vim を介してライブ サーバーでも表示されますが、ライブ サイトに移動しても表示されません。

私の現在の回避策は、サーバーを再起動し、サーバーが再起動した後にnginxとパッセンジャーを開始することです。

私の懸念は、展開して再起動するときに誰かがサイトにログオンしている場合、サイトからノックアウトされることです。

誰にもアイデアはありますか

4

2 に答える 2

18

touch tmp/restart.txtRails ルート ディレクトリから実行すると、パッセンジャーはアプリを再起動します。nginx を再起動する必要はありません。restart.txt ファイルのタイムスタンプが変更されると、Passenger は次のリクエストのために再起動します。アプリの起動に時間がかかる場合は、ファイルに触れた直後にリクエストを行うことで、これを強制することができます。

サイトから誰かを追い出すことを心配する必要はありません。処理中のリクエストがある場合、サーバーは再起動しません。

于 2013-02-16T22:58:11.040 に答える
0

それでも問題に直面している場合は、Monit gem を使用できます。capstraino では非常にうまく機能します。

于 2015-06-04T06:22:38.017 に答える