私はしばらく前にCherokeeでウェブサイトのホスティングを始めました。外部ソース(FastCGIなど)の場合、指定されたソケットまたはポートで実行されているプロセスが見つからない場合は、プロセスを開始するオプションがあります。これは、PHPまたはDjangoサイトがクラッシュした場合(時には発生した場合)が自動的に再起動されることを意味するので、便利です。
PHP-FPMを使用する新しいサーバーでは、Cherokeeは利用できず(PHPのバグがある)NGINXに移動しました。私は設定スタイルのためにNGINXが本当に好きですが、プロセスがクラッシュして再生成されないという深刻な問題があります。 PHPは時々これを行いますが、Djangoサイトではより大きな問題です。これを行うための初期化スクリプトを作成し、起動時に表示されますが、再起動の間に失敗すると役に立ちません。
FastCGIプロキシを探しているようです。どのプロセスがどのソケット/ポートで実行されるべきかを知り、必要に応じて再生成するCherokeeのようなものです。そんなことがありますか?より簡単な設定のためにこれをNGINXにビルドする方法はありますか?
答え1
どうですか?デーモンツール特にモニタリングツール
監督および監視サービス。サービスを開始し、サービスが終了したら再起動します。新しいサービスを設定するのは簡単です。すべての監督要件は、サービスを実行する実行スクリプトを含むディレクトリです。
答え2
生まれ変わる初期化テーブル
答え3
私はこのdaemontools
提案に同意しますが、(何らかの理由で)DJBソフトウェアの仕組みが気に入らない場合は、supervisord
。
しばらく前にsupervisord
管理nginx
用にFreeBSDイメージを設定しました。gunicorn
、私は単純なWSGIアプリケーションをホストするために使用し、プロセス全体は非常に簡単です。
しかし、Djangoに対してこれを行う場合は、Gunicornを使用してDjangoアプリケーションを非常に簡単にデプロイできます。バラよりこのブログ投稿詳細については。
答え4
思ったことある?god
?
GodはRubyで書かれた、設定が簡単で拡張しやすい監視フレームワークです。
サーバープロセスとタスクを実行し続けることは、展開プロセスの簡単な部分です。神は最も単純で最も強力な監視アプリケーションを目指しています。
私はこれを使用してRails / nginxインスタンスがクラッシュした場合に再度有効にし、正しいポートを使用していることを確認するための基本的なサポートは表示されませんが、問題がプロセスにあると間違ってはいけません。失敗または実行されなくなりましたgod
。