1

私の目標は、クラッシュするたびにdjangoアプリを自動的に再起動し、エラーをログファイルに書き込むことです。スーパーバイザー、daemontools、またはdjango-supervisorを使用するための提案がありますが、それらのいずれかを機能させるのに問題があります。

たとえば、supervisordでは、アプリケーションは管理する「プログラム」を要求しますが、それはディレクトリです。これが実際に何を意味するのか私にはわかりません。管理したい場合、私のdjangoプロジェクト全体と重複する「プログラム」とは何ですか?

私はこれに設定しました:

[progam:webserver]
command=/home/user/apps/django/apache2/bin/start # I think this is wrong
restart=true
logfile=/home/path/to/file

しかし、これは正しくないと思います。Webサーバーの背後にある基本事項と、Webサーバーがdjangoアプリやmod_wsgiなどとどのように相互作用するかはわかりません。

tl;drには3つの質問があると思います。1つは、apacheでdjangoプロジェクトを管理することをどのように推奨するかです。次に、djangoプロジェクトにフックするようにスーパーバイザーを構成するにはどうすればよいですか?[編集]そして3番目の質問は、クラッシュのログ記録以外に、Webアプリの管理に他にどのような優れた機能を追加する必要があるかということです。

ありがとう!

4

1 に答える 1

2

apache で django を実行している場合、スーパーバイザーは必要ありません。django エラーは、Apache リクエスト内で発生します。Apache はすでにサービスです。apache が処理しているリクエスト数やそのリソース使用量を追跡することは重要かもしれませんが、これには便利なオープン ソース ツールがあります (そのうちの 1 つが nagios)。

一部の python Web サーバー (gunicorn だと思います) は、スーパーバイザーを使用して管理できます (そうすべきでしょうか?)。ただし、Apache では、これは必要ありません。

Apache は、仮想ホストで設定したエラー ログへのロギングを処理します。さらに、エラーが発生した場合に django からメールを送信することもできます (かなりクールだと思います)。エラーの優れた管理を提供します。

于 2012-09-26T16:09:20.793 に答える