servidor proyecto produccion platzi migrar llevar deploy django apache mod-wsgi

proyecto - web server django



Implementación de múltiples aplicaciones django en Apache con mod_wsgi (3)

Este es un problema con el archivo wsgi.py generado por Django 1.4. No funcionará cuando intente alojar dos instancias de Django distintas en el mismo proceso, aunque en subinterpretadores por separado.

Cambio:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "site1.settings")

a:

os.environ["DJANGO_SETTINGS_MODULE"] = "site1.settings"

O mejor aún use el modo demonio y delegue cada uno para ejecutar en distintos grupos de procesos de daemon.

Es decir, en lugar de:

WSGIScriptAlias /site1 /var/www/py/site1/site1/wsgi.py WSGIScriptAlias /site2 /var/www/py/site2/site2/wsgi.py WSGIPythonPath /var/www/py/site1:/var/www/py/site2

utilizar:

WSGIDaemonProcess site1 python-path=/var/www/py/site1 WSGIScriptAlias /site1 /var/www/py/site1/site1/wsgi.py process-group=site1 application-group=%{GLOBAL} WSGIDaemonProcess site2 python-path=/var/www/py/site2 WSGIScriptAlias /site2 /var/www/py/site1/site2/wsgi.py process-group=site2 application-group=%{GLOBAL}

ACTUALIZAR

Tenga en cuenta que ahora hay una publicación de blog completa sobre esta y otras causas.

Quiero implementar dos aplicaciones django diferentes en el mismo host: la primera corresponderá a la url / sitio1 y la segunda a la url / sitio2. Aquí está mi configuración:

LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias /site1 /var/www/py/site1/site1/wsgi.py WSGIScriptAlias /site2 /var/www/py/site2/site2/wsgi.py WSGIPythonPath /var/www/py/site1:/var/www/py/site2 <Directory "/var/www/py/site1/site1"> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory> <Directory "/var/www/py/site2/site2"> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory>

También aquí está el archivo wsgi.py para ambas aplicaciones

import os import sys path = ''/var/www/py/site1'' if path not in sys.path: sys.path.append(path) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "site1.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

Ahora, aquí está mi problema. Cuando voy a mi servidor, digamos http://app1.sites.gr/site1 , algunas veces carga site1, y otras veces carga site2 !!!! Lo mismo ocurre cuando visito http://app1.sites.gr/site2 ... Sometiems obtengo la página de bienvenida para site1, ¡a veces obtengo la página de bienvenida para site2! Estoy presionando F5 y obtengo diferentes páginas de bienvenida. Revisé todo durante las horas anteriores y no encontré nada extraño ...

Por favor, dime cuál podría ser el problema antes de volverme loco ...

Gracias !


La respuesta de Graham Dumpleton es la que probablemente quiera leer más cerca, pero le sugiero que se ahorre un montón de ardor alojando sus dos Djangos en la raíz de diferentes subdominios en lugar de ubicarlos en el mismo dominio. Hay muchos problemas para ejecutar sitios de Django que no sean root en mi humilde opinión.

¡Buena suerte!


Sus aplicaciones escuchan en el mismo puerto, y no parece haber un proxy que las delegue en otras.

Tienes que configurar VirtualHosts dentro de apache o usar Nginx, lighttpd u otra cosa para crear un proxy adecuado