如何在多个域上提供多个 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>
然后我显然也有虚拟主机,我得到了 django 默认安装页面,但现在我想提供我的第二个应用程序,有人能指出我正确的方法吗?
Django 五世:1.4.1
最佳答案
您可以在此处采用多种方法,没有简单的答案 - 这取决于您的要求和限制。
可能可行的最简单的方法很可能是@Hedde 建议的方法——在虚拟主机中为每个站点定义 WSGI 配置。
第二种可能更灵活的方法是在它自己的包含应用程序服务器的内部运行每个 Django 应用程序,例如gunicorn (希望在 virtualenv 中以隔离特定于应用程序的依赖项)在不同的端口上,然后使用 Apache 甚至 Nginx作为应用程序流量的代理。
这涉及到更复杂的服务器环境来管理,但为您提供了能够单独管理应用程序的优势。
您可以一次为一个应用程序重新配置可用工作人员、升级应用程序版本、更改 settings.py 等,而不必重新启动单个整体进程。
此外,虽然当然有可能,但监控同一 Apache 进程中的虚拟主机比单独监控单个应用程序服务器实例更复杂。
YMMV
关于python - 一台服务器上的多个 Django 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12156990/