编程语言
首页 > 编程语言> > python-使用Apache和多个Django站点的行为古怪,不一致

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