我正在尝试同时运行两个Django项目.我碰巧使用mod_wsgi,发现该网站表现得很奇怪.也许会有一个解决方法,但我想知道我错过了什么,以及如何解决问题.
在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
Run Code Online (Sandbox Code Playgroud)
Apache重新启动后,如果我连接到'/ proto',则会显示proto站点.但是,然后我连接到'/ test',而不重启Apache,原始站点仍然显示,我无法访问测试站点.
现在我重启Apache,这次我先去'/ test'.测试网站出现了!但是,如果我去'/ 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>
Run Code Online (Sandbox Code Playgroud)
[更新]
我从守护进程模式更改为嵌入模式.我想问题是两个实例共享相同的mod_wsgi守护程序进程,因此它们的命名空间发生冲突.
我希望它们应该被正确处理,但是在守护进程模式中我无法正确处理它.
Gra*_*ton 14
使用此作为变通方法:
WSGIDaemonProcess pydaemon-1 processes=1 threads=5
WSGIDaemonProcess pydaemon-2 processes=1 threads=5
WSGIScriptAlias /test /var/www/html/test/wsgi.py
<Location /test>
WSGIProcessGroup pydaemon-1
WSGIApplicationGroup %{GLOBAL}
</Location>
WSGIScriptAlias /proto /var/www/html/proto/wsgi.py
<Location /proto>
WSGIProcessGroup pydaemon-2
WSGIApplicationGroup %{GLOBAL}
</Location>
Run Code Online (Sandbox Code Playgroud)
这将强制每个应用程序进入单独的守护进程组,并且它们不应该相互干扰.
如果仍然无法正常工作,那么您的WSGI脚本文件会出现问题.
| 归档时间: |
|
| 查看次数: |
4857 次 |
| 最近记录: |