Django + Apache + mod_wsgi: wsgi スクリプトが複数回実行されるのはなぜですか?

Django + Apache + mod_wsgi: wsgi スクリプトが複数回実行されるのはなぜですか?

私はサーバー テクノロジー全般について比較的初心者ですが、mod_wsgi を使用して Apache Web サーバーに Django アプリをデプロイするには、次のチュートリアルに従いました。

http://thecodeship.com/deployment/deploy-django-apache-virtualenv-and-mod_wsgi/

仮想ホスト ファイルは次のとおりです。

<VirtualHost *:80>
        ServerName www.abcxyz.org
        ServerAlias abcxyz.org
        WSGIScriptAlias / /var/www/abcxyz/django/abcxyz/wsgi_prod.py
        Alias /static/ /var/www/abcxyz/static/
        <Location "/static/">
            Options -Indexes
        </Location>
</VirtualHost>

私の理解では、wsgi_prod.pyファイルはサーバーの起動時 (または最初のリクエストを受け取ったとき - これについてはよくわかりません) に 1 回だけ実行されるはずです。しかし、私のアプリケーションでは、サーバーにリクエストを送信するときに複数回実行されます。

wsgi_prod.pyすべてのリクエストで実行されるわけではなく、一部のリクエストで実行されます。また、時々のみ実行をトリガーするリクエストもあります。

これは私の wsgi_prod.py ファイルです:

import os
import sys
import site
import thread


# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('/etc/Envs/abcxyz/local/lib/python2.7/site-packages')

# Add the app's directory to the PYTHONPATH
sys.path.append('/var/www/abcxyz/django')
sys.path.append('/var/www/abcxyz/django/abcxyz')


os.environ['DJANGO_SETTINGS_MODULE'] = 'abcxyz.settings.production'

# Activate your virtual env
activate_env=os.path.expanduser("/etc/Envs/abcxyz/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))


print "WSGI RUN!!!"

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

私のケースでは何が間違っていたのか、またどこからエラーを探し始めればよいのか、誰かご存知ですか?

答え1

プロセスごとに 1 回ロードされます。

マルチプロセス構成を使用している可能性があり、後続のリクエストが別のプロセスによって処理されているか、プロセスがリサイクルされています。デバッグでプロセス ID を出力します。また、以下も読んでください:

そして見てください:

関連情報