Django + Apache + mod_wsgi: ¿Por qué el script wsgi se ejecuta varias veces?

Django + Apache + mod_wsgi: ¿Por qué el script wsgi se ejecuta varias veces?

Soy relativamente nuevo en toda la tecnología de servidores y seguí este tutorial para implementar mi aplicación Django en un servidor web Apache, usando mod_wsgi:

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

Aquí está mi archivo de hosts virtuales:

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

Según tengo entendido, el wsgi_prod.pyarchivo solo debe ejecutarse una vez cuando se inicia el servidor (o cuando recibe la primera solicitud; no estoy muy seguro de esto). Pero en mi aplicación se ejecuta varias veces al enviar solicitudes al servidor.

No se ejecuta en todas las solicitudes pero sí en algunas de ellas. Y también hay algunas solicitudes que desencadenan la ejecución wsgi_prod.pysólo algunas veces.

Este es mi archivo 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()

¿Alguien tiene alguna idea de qué pudo haber salido mal en mi caso y dónde podría empezar a buscar el error?

Respuesta1

Se cargaría una vez por proceso.

Probablemente esté utilizando una configuración multiproceso y las solicitudes posteriores estén siendo manejadas por diferentes procesos y/o los procesos se estén reciclando. Imprima el ID del proceso en la depuración. También ve a leer:

y ver:

información relacionada