Django + Apache + mod_wsgi: Por que o script wsgi é executado várias vezes?

Django + Apache + mod_wsgi: Por que o script wsgi é executado várias vezes?

Sou relativamente novo em toda a tecnologia de servidores e segui este tutorial para implantar meu aplicativo Django em um servidor Web Apache, usando mod_wsgi:

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

Aqui está meu arquivo de hosts virtuais:

<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>

Pelo que entendi, o wsgi_prod.pyarquivo só deve ser executado uma vez quando o servidor for iniciado (ou quando receber a primeira solicitação - não tenho muita certeza sobre isso). Mas na minha aplicação ele é executado diversas vezes, ao enviar solicitações ao servidor.

Não é executado em todas as solicitações, mas em algumas delas. E também existem algumas solicitações, que desencadeiam a execução wsgi_prod.pyapenas algumas vezes.

Este é meu arquivo 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()

Alguém tem alguma ideia do que poderia ter dado errado no meu caso e onde posso começar a procurar o erro?

Responder1

Ele seria carregado uma vez por processo.

Você provavelmente está usando uma configuração multiprocesso e as solicitações subsequentes estão sendo tratadas por diferentes processos e/ou processos estão sendo reciclados. Imprima o ID do processo na depuração. Leia também:

e assistir:

informação relacionada