我有一个基于Django的CMS,它使用Django的站点框架和Nginx/Apache/mod_wsgi虚拟主机来运行不同域上的许多网站.我们正在评估Django堆栈的其他选项,并让CMS 在新服务器上运行单个站点,Nginx代理Gunicorn(具体来说是gunicorn_django).
虽然这对单个站点很有用,但我不确定如何为多个站点配置Gunicorn.问题是,使用Apache/mod_wsgi,我们可以将DJANGO_SETTINGS_MODULE
for 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()
Run Code Online (Sandbox Code Playgroud)
目前我认为我必须为我们运行的每个虚拟主机站点安装一个不同的Gunicorn实例,但这对我们大多数站点的流量来说似乎有点过分.
有没有人用Django的网站框架运行Gunicorn并且可以暗示它是如何配置的?