python-使用Apache和多个Django站点的行为古怪,不一致
作者:互联网
我有两个mod_wsgi django网站和四个域名.每个站点指向两个域.当我使用chrome中的所有四个域访问我的两个站点时,它们都工作正常.但是只有大部分时间.有时,给定域,会突然显示错误的站点.完全出乎意料.
因为行为是完全不可预测的,所以这变得非常混乱.我跟随站点A上的一些内部链接,突然之间,站点B出现404错误(自然,无法在站点B的URL中解析该URL,因为它是站点A的URL).我可以在不更改url的情况下刷新页面,突然它会带回站点A.或者它将停留在错误的站点和404中,您永远不会知道.
我已经在代理服务器(例如hidemyass.com)上进行了尝试,并且发生了相同的不可预测的结果.
关于它的唯一可预测性是,在apachectl -k正常运行之后,有一段时间没有站点切换,但是此后每两页发生一次.我向您保证,这没有偏见.
这是我的httpd:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.siteA.tk
ServerAlias siteA.tk
WSGIScriptAlias / /home/me/siteA/siteA/wsgi.py
Alias /static/ /var/www/siteA/static/
</VirtualHost>
<VirtualHost *:80>
ServerName www.siteA.com
ServerAlias siteA.com
WSGIScriptAlias / /home/me/siteA/siteA/wsgi.py
Alias /static/ /var/www/siteA/static/
</VirtualHost>
<VirtualHost *:80>
ServerName www.siteB.tk
ServerAlias siteB.tk
WSGIScriptAlias / /home/me/siteB/siteB/wsgi.py
</VirtualHost>
<VirtualHost *:80>
ServerName www.siteB.com
ServerAlias siteB.com
WSGIScriptAlias / /home/me/siteB/siteB/wsgi.py
</VirtualHost>
<Directory /var/www/siteA/static>
Order deny,allow
Allow from all
</Directory>
WSGIPythonPath /home/me/siteA:/home/me/siteB
请帮忙,我好害怕,就像某些Apache恶魔拥有我的计算机一样.
解决方法:
继续阅读:
> http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html
这描述了在Apache / mod_wsgi下运行Django时,为什么混合站点响应的所有常见原因.
除此之外,如果您不小心在共享公共父域的站点的位置,还会看到问题.为此,如果每个站点均已设置且有效共享同一cookie,则可能必须调整cookie域或名称.
还应注意为所有站点共享通用的后端服务,例如内存缓存,因为可能存在争用,因为不同的站点对数据使用相同的密钥.对于该设置,使用不同的Memcache键前缀来保持数据分离.
标签:apache,mod-wsgi,python,django 来源: https://codeday.me/bug/20191122/2060930.html