Запуск нескольких сайтов с помощью Django Sites Framework через Gunicorn / Nginx
У меня есть CMS на основе Django, которая использует инфраструктуру сайтов Django и виртуальные хосты Nginx / Apache / mod_wsgi для запуска нескольких сайтов в разных доменах. Мы оцениваем другие варианты стека Django и работаем с CMS сне замужем сайт на новом сервере с прокси Nginx для Gunicorn (gunicorn_django, в частности).
Хотя это прекрасно работает для одного сайта, я не уверен, как настроить Gunicorn для нескольких сайтов. Проблема в том, что с Apache / mod_wsgi мы могли бы установитьDJANGO_SETTINGS_MODULE
для mod_wsgi на соответствующий сайтsettings.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()
В настоящий момент я думаю, что мне нужно иметь разные экземпляры Gunicorn для каждого сайта виртуального хоста, который мы запускаем, но это кажется избыточным для трафика, который мы получаем на большинство наших сайтов.
Кто-нибудь запускает Gunicorn с каркасом сайтов Django и может подсказать, как он настроен?