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.py
archivo 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.py
só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:
- http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading
- http://blog.dscpl.com.au/2012/10/why-are-you-using-embedded-mode-of.html
y ver: