我正在尝试同时运行两个Django项目。我恰好使用了mod_wsgi,并发现网站表现异常。或许有一些变通的方法,但我想知道我错过了什么以及如何解决这个问题。
在Apache配置中:
在Apache配置中:
# Setup the Python environment
# As root owns basically everything on a Amazon AMI and root
# cannot be used. Create a folder under /var/run/wsgi
# with the owner as ec2-user and group ec2-user.
WSGISocketPrefix /var/run/wsgi
# Call your daemon process a name
WSGIDaemonProcess pydaemon processes=1 threads=5
# Call your daemon process group a name
WSGIProcessGroup pydaemon
# Point to where the handler file is. This will be different
# If you are using some other framework.
WSGIScriptAlias /test /var/www/html/test/wsgi.py
WSGIScriptAlias /proto /var/www/html/proto/wsgi.py
重新启动Apache后,如果我连接到“/proto”,则会显示proto网站。然而,如果我在不重新启动Apache的情况下连接到“/test”,则仍然会显示proto网站,并且无法访问test网站。
现在我重新启动了Apache,这次我先进入“/test”。测试网站出现了!但是,如果我去“/proto”,它仍然显示测试站点,而不是proto站点。
这是什么原因?我已经为每个应用程序分别添加了SESSION_COOKIE_PATH,但问题仍然存在。
[更新]
我还尝试过以下操作,给不同的WSGI应用程序组命名,但没有成功。
Alias /cuedit /var/local/test/wsgi.py
<Location /test>
SetHandler wsgi-script
Options +ExecCGI
WSGIApplicationGroup test
</Location>
Alias /proto /var/local/proto/wsgi.py
<Location /proto>
SetHandler wsgi-script
Options +ExecCGI
WSGIApplicationGroup proto
</Location>
[更新]
我从守护进程模式改成了嵌入式模式。我猜问题是两个实例共享了同一个mod_wsgi守护进程,导致它们的命名空间发生冲突。
我本来以为它们应该被正确处理,但在守护进程模式下,我没能搞定。
/var/www/html
下。 - Daniel Roseman