Executando vários sites com a estrutura de sites do Django através do Gunicorn / Nginx
Eu tenho um CMS baseado no Django que usa a estrutura de sites do Django e hosts virtuais Nginx / Apache / mod_wsgi para executar vários sites em domínios diferentes. Estamos avaliando outras opções para uma pilha do Django e temos o CMS executando com umsolteiro site em um novo servidor com proxy Nginx para Gunicorn (gunicorn_django, especificamente).
Embora isso funcione muito bem em um único site, não sei como configurar o Gunicorn para vários sites. O problema é que, com o Apache / mod_wsgi, poderíamos definir oDJANGO_SETTINGS_MODULE
para mod_wsgi no site apropriadosettings.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()
No momento, estou pensando que tenho que ter uma instância diferente do Gunicorn para cada site de host virtual que executamos, mas isso parece um exagero para o tráfego que obtemos na maioria dos sites.
Alguém executa o Gunicorn com a estrutura de sites do Django e pode dar uma dica de como ele é configurado?