一台服务器上有多个Django应用

2 python apache django mod-wsgi

如何在多个域上提供多个Django应用程序?

例如我有

djangoapp1.com和djangoapp2.com

然后,我在两个不同的位置拥有两个独立的应用程序

/ srv / www / djangoapp1 / srv / www / djangoapp2

我正在使用mod_wsgi运行Apache2,目前在其httpd.conf中包含以下内容

WSGIScriptAlias / /srv/www/app1/app1/wsgi.py
WSGIPythonPath /srv/www/app1

<Directory /srv/www/app1/system>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后,我显然也有了虚拟主机,并且得到了django默认安装页面,但是现在我想提供第二个应用程序,有人可以指出正确的方法吗?

Django V:1.4.1

Dav*_*ler 6

您可以在此处采用多种方法,没有简单的答案 - 这取决于您的要求和约束。

可能可行的最简单的方法很可能是@Hedde 建议的方法 - 在虚拟主机内定义每个站点的 WSGI 配置。

第二种可能更灵活的方法是在它自己的包含应用程序服务器中运行每个 Django 应用程序,例如gunicorn(希望在virtualenv中隔离应用程序特定的依赖项)在不同的端口上,然后使用 Apache 甚至Nginx作为应用程序流量的代理。

这涉及到更复杂的服务器环境需要管理,但为您提供了能够单独管理应用程序的优势。

您可以一次为一个应用程序重新配置可用的工作线程、升级应用程序版本、更改 settings.py 等,而不必重新启动单个单一进程。

此外,虽然当然有可能,但监控同一 Apache 进程内的虚拟主机比单独监控单个应用服务器实例更复杂。

青年会


Hed*_*ide 5

您可以使用Apache的VirtualHosts

Django有很多示例,例如这里