1

現在、リクエストをdjangoに渡すためにプロキシパスを使用するnginxを実行しているホームサーバー(Ubuntu)があります。wsgi サーバーとして gevent を使用しています。

なんらかの理由でサーバーを再起動するか、何かがクラッシュする(電気)ために、サーバーがシャットダウンするまで、すべて正常に機能します。nginx はサービスなので、サーバーを再起動すると nginx も起動します。ただし、私のdjangoアプリはそうではありません。そのため、手動で各 django プロジェクトに移動し、それらの virtualenv をアクティブにしてから、gevent プロセスを起動する必要があります。これは控えめに言っても非常に迷惑です。

これらすべてを自動的に処理する標準的な方法はありますか?

4

2 に答える 2

7

UpstartSupervisorなどのスクリプトを設定する必要があります。個人的には、Supervisor を使用することを好みます。ガンコーン インスタンスを実行するために使用するスクリプトは次のとおりです。

[program:gunicorn]
command=/path/to/virtualenv/bin/python manage.py run_gunicorn -c /path/to/gunicorn.conf.py
directory=/path/to/django/project
user=www-data
autostart=true
autorestart=true
redirect_stderr=True
于 2012-08-10T17:10:12.860 に答える
1

プロセス マネージャーを使用してこれを処理することを検討してください。スーパーバイザーが好き

さまざまなプロセスを起動する方法を指定すると、バックグラウンドで (nginx と同じように) 実行され、再起動時に自動的に起動し、さまざまな django バックエンド プロセスを起動します。

于 2012-08-10T17:09:44.690 に答える