如何从不同的虚拟主机重新使用Phusion-Passenger中的相同Python应用程序,但维护单独的进程?

时间:2013-12-13 08:54:54

标签: python django apache2 passenger virtualhost

我有两个虚拟主机使用Apache和Passenger服务于同一个Django应用程序:

<VirtualHost *:80>
    ServerName A
    SetEnv V "VA"
    DocumentRoot /path/public
    ...
</VirtualHost>

<VirtualHost *:80>
    ServerName B
    SetEnv V "VB"
    DocumentRoot /path/public
    ...
</VirtualHost>

由于DocRoot对于两者都是相同的,因此第一次Passenger启动/生成进程时,将根据请求的第一个虚拟主机设置ENV变量。然后缓存应用程序代码,因此,即使访问其他vhost,ENV变量仍​​然是在生成时设置的那个。

现在,通过阅读文档,我认为将PassengerSpawnMethod设置为“直接”可以解决问题,但显然它没有。我很想知道为什么和“直接”做什么,以及我将如何解决这个问题?

我的最终目标是将不同的env变量从vhost传递到相同的Django应用程序。

1 个答案:

答案 0 :(得分:0)

使用PassengerAppGroupName。给每个人一个不同的名字。