Ejecución de múltiples sitios con el marco de sitios de Django a través de Gunicorn / Nginx
Tengo un CMS basado en Django que usa el marco de sitios de Django y los hosts virtuales Nginx / Apache / mod_wsgi para ejecutar una serie de sitios web en diferentes dominios. Estamos evaluando otras opciones para una pila de Django y tenemos el CMS ejecutándose con unsoltero sitio en un nuevo servidor con Nginx proxy para Gunicorn (gunicorn_django, específicamente).
Aunque esto funciona muy bien para un solo sitio, no estoy seguro de cómo configurar Gunicorn para múltiples sitios. El problema es que con Apache / mod_wsgi, podríamos configurar elDJANGO_SETTINGS_MODULE
para mod_wsgi al sitio apropiadosettings.py
import os, sys
def inflight(filename):
"""
Calculate absolute path to the folder containing "myfile.wsgi", then
append to the PYTHONPATH.
"""
ROOT = ('/').join(os.path.abspath(os.path.dirname(filename)).split('/')[0:-1])
sys.path.append(ROOT)
sys.path.append(os.path.join(ROOT, 'website'))
sys.stdout = sys.stderr
# Each website should have a settings file: /www/mysite.com/website/settings.py
os.environ['DJANGO_SETTINGS_MODULE'] = 'website.settings'
import django.core.handlers.wsgi
return django.core.handlers.wsgi.WSGIHandler()
Por el momento, creo que tengo que tener una instancia diferente de Gunicorn para cada sitio de host virtual que ejecutamos, pero eso parece excesivo para el tráfico que llegamos a la mayoría de nuestros sitios.
¿Alguien ejecuta Gunicorn con el marco de sitios de Django y puede dar una pista de cómo está configurado?