我正在使用 Apache 和 mod_wsgi 在多台服务器上部署 django 应用程序。我在多个地方读过 (包括这个:http://blog.dscpl.com.au/2012/10/why-are-you-using-embedded-mode-of.html) 最好使用 wsgi 的守护进程模式。这将允许我控制每个进程的进程数和线程数,以及其他一些巧妙的功能 :)
现在,我可以在同一台服务器上拥有两个或更多个 django 应用程序实例(每个实例都有自己的设置、数据库等)。例如:
http://team1-server/prod-instance
http://team1-server/test-instance
虽然我认为我理解如何对多个虚拟主机使用不同的“进程组”和“守护进程”配置,但我似乎并不知道如何处理多个“子根”。
编辑:
我运行这些CentOS 6.2发行版。在/etc/httpd/conf.d/
目录中,每个实例都有一个.conf
文件,如下所示:
WSGIScriptAlias /prod-instance /opt/wsgi_applications/prod/app.wsgi
结束编辑。
我是否应该使用虚拟主机并使用诸如 这样的 URL http://prod-instance.team1-server/
?这意味着我应该依靠网络管理员来更新 DNS 表,但这对于我们的客户来说永远不够快。:)
我必须承认,在 Apache 配置方面我经常会感到迷茫。欢迎您的帮助。
谢谢!
O。
答案1
假设你没有使用非常旧的过时的 mod_wsgi 版本,你可以说:
WSGIDaemonProcess prod-instance
WSGIScriptAlias /prod-instance /opt/wsgi_applications/prod/app.wsgi process-group=prod-instance application-group=%{GLOBAL}
WSGIDaemonProcess test-instance
WSGIScriptAlias /test-instance /opt/wsgi_applications/test/app.wsgi process-group=test-instance application-group=%{GLOBAL}
如果您正在使用非常旧的过时的 mod_wsgi 版本,请改用:
WSGIDaemonProcess prod-instance
WSGIScriptAlias /prod-instance /opt/wsgi_applications/prod/app.wsgi
<Location /prod-instance>
WSGIProcessGroup prod-instance
WSGIApplicationGroup %{GLOBAL}
</Location>
WSGIDaemonProcess test-instance
WSGIScriptAlias /test-instance /opt/wsgi_applications/test/app.wsgi
<Location /test-instance>
WSGIProcessGroup test-instance
WSGIApplicationGroup %{GLOBAL}
</Location>