2012-03-13 82 views
0

我有一个使用网站框架的django应用程序,需要部署在一个单一的apache虚拟主机。我用PythonInterpreter使用mod-python,它工作正常。但mod-python已被弃用,我想迁移到wsgi。但我可以弄清楚如何使用wsgi配置这个场景。谁能帮我?我想对每个网站使用WSGIScriptAlias不起作用,因为它运行在相同的python解释器上。django + wsgi +多个网站

任何人都可以帮助我吗?

+0

我发现这个指令:WSGIApplicationGroup(http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIApplicationGroup)。我正在弄清楚它是否解决了这个问题。 – msbrogli 2012-03-13 23:25:58

回答

2

WSGIApplicationGroup的默认值为%{RESOURCE},它扩展为包含ServerName的值和应用程序安装点。因此,默认情况下,每个不同的虚拟主机都将在独立的子解释器中。

这意味着如果您有多个VirtualHost定义与不同的ServerName设置,那么它们将是不同的。

一般来说,最好为每个站点创建一个独立的守护程序进程组,并将每个进程委派给一组不同的进程。这是使用WSGIDaemonProcess和WSGIProcessGroup指令完成的。

当每个站点位于单独的守护进程组中时,通常最好将WSGIApplicationGroup设置为%{GLOBAL},以便在进程中使用主解释器,这样可以避免一些第三方C扩展模块出现的问题,以便在分译员中工作。

+0

但WSGIDaemonProcess的上下文是虚拟主机。我怎样才能做到这一点只使用一个虚拟主机?我的网站是:http:// /site1 /和http:// /site2 /。 – msbrogli 2012-03-14 00:47:17

+0

它不限于VirtualHost。它可以在VirtualHost之外,然后每个VirtualHost都有一个引用它的WSGIProcessGroup。正如我所说的,你最好每个站点有一个守护进程组。 – 2012-03-14 05:13:23

+0

工作得很好!谢谢! =] – msbrogli 2012-03-16 01:20:27