3 votos

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

Soy relativamente nuevo en la tecnología de servidor y he seguido este tutorial para implementar mi aplicación de django en un servidor Web Apache, el uso de mod_wsgi:

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

Aquí está mi virtual archivo de hosts:

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

Como yo lo entiendo, el wsgi_prod.py archivo sólo debe ser ejecutado una vez, cuando se inicia el servidor (o cuando se recibe la primera solicitud - no estoy particular seguro acerca de esto). Pero en mi aplicación que se ejecuta varias veces, cuando el envío de peticiones al servidor.

No es ejecutado en todas las solicitudes, pero en algunos de ellos. Y también hay algunos solicitud, que desencadenan la ejecución de wsgi_prod.py sólo a veces.

Este es mi wsgi_prod.py archivo:

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

Tiene alguien alguna idea de lo que podría haber ido mal en mi caso y en donde podía empezar a buscar el error?

4voto

Jason Puntos 8799

Sería cargado una vez por cada proceso.

Probablemente usted está usando un multiprocesador de configuración y posteriores solicitudes están siendo manejados por diferentes procesos y/o procesos que se reciclan. Imprimir el ID del proceso en la depuración. También lea:

y mira:

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: