Alojamiento de varias instancias de VirtualHost

Mi proyecto de django consta de muchas aplicaciones, bibliotecas y middleware. Me gustaría ejecutar diferentes configuraciones de este proyecto en diferentes hosts virtuales (debido a diferentes casos de uso y necesidades, por ejemplo: uno para usuarios, uno para api M2M, etc.). De este pregunta Entiendo que no debería ser un problema alojar esto, siempre que tenga archivos de arranque wsgi separados, pero no entiendo por qué la siguiente línea:

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

no causa un error con implementaciones simultáneas. Si tengo varios hosts virtuales con sus propios archivos de configuración wsgi, todos los cuales configuran la variable de sistema DJANGO_SETTINGS_MODULE, ¿no sobrescriben la configuración de cada uno?

¿Esta configuración se cambia "justo a tiempo" en cada solicitud? En ese caso, ¿existe una forma más eficiente de manejar dicha configuración de host múltiple?

Gracias,

preguntado el 01 de febrero de 12 a las 22:02

1 Respuestas

Todas las instalaciones de django tienen su propio alcance de python. Eso significa que las variables de site1 no están disponibles en site2. Eso es lo mismo que dos conchas de pitón. No se puede acceder al entorno ajeno.

Entonces tienes dos instancias en ejecución de tu proyecto. Uno para site1 y otro para site2.

También manejo mis instalaciones de esta manera, pero puedo imaginar que sería mejor usar solo una instalación y ofrecer cosas como apis en una subpágina. Pero no sé si es significativamente mejor para el rendimiento.

Respondido 02 Feb 12, 02:02

Sí, por defecto, cada aplicación WSGI tiene su propio sub-intérprete dentro de un proceso. El aislamiento no siempre es perfecto, pero suele funcionar. Para un mejor aislamiento, es mejor usar un grupo de proceso demonio mod_wsgi separado para cada aplicación WSGI usando WSGIDaemonProcess / WSGIProcessGroup en combinación. - Graham Dumpleton

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.