私は大きなDjangoアプリを持っています。これは2つのApache仮想ホストが異なる設定ファイルを指しているので、アプリケーションの一部は1つのURLでアクセス可能で、別のURL経由でアクセス可能です。 Djangoアプリはvirtualenvを使います。mod_wsgiとDjangoアプリが定期的にハングする
のmod_wsgiは、ApacheのVirtualHostのブロックに以下をデーモンモードで実行するように設定されています
# domain 1:
WSGIDaemonProcess fc processes=5 threads=5 display-name=%{GROUP} \
user=nobody group=nobody
WSGIScriptAlias//var/www/python/mine/apache/my.wsgi \
process-group=fc application-group=%{GROUP}
# different apache.conf file for domain 2:
WSGIDaemonProcess fm processes=5 threads=5 display-name=%{GROUP} \
user=nobody group=nobody
WSGIScriptAlias//var/www/python/mine/apache/other.wsgi \
process-group=fm application-group=%{GROUP}
すべての今、もう一度サイトを利用しながら、リクエストがハングします。それは決して完了しません。ブラウザの '更新'ボタンを使用してページをリロードする必要があり、リクエストが正常に機能します。
Apache自体がプリフォークモードで動作し、MaxRequestsPerChildが0に設定されています。これは、読んだことが問題である可能性があるためです。これは潜在的な問題であるために頻繁に起こります。おそらく100回のリクエストごとに発生します。
これはなぜ起こっているのですか? WSGIDaemonProcessオプションではなく、 '%{GROUP}' の 'アプリケーショングループ=%{GLOBAL}' でなければならない
おかげ
エラーログとアクセスログには何が表示されますか? – payne
@payne:エラーログにはエラーはなく、アクセスログには何も問題はありません。ハングする要求にアクセスログにエントリがあるかどうかはわかりません。 – john