我有两个django站点和四个域名。两个域指向每个站点。当我使用chrome中的所有四个域访问我的两个站点时,它们都工作得很好。但大多数时候。有时,给定一个域,会突然显示错误的站点。完全出乎意料。
这变得非常混乱,因为行为是完全不可预测的。我跟踪站点A上的一些内部链接,突然,来自站点B的Amod_wsgi出现(很自然,该url无法在站点B的url中解析,因为它是来自站点A的url)。我可以在不更改url的情况下刷新页面,然后它会突然返回站点A。或者它会停留在错误的站点,然后再次404 error,你永远不会知道。
我试过代理(比如com),同样的不可预知的结果发生了。
唯一可以预测的是,在404之后,一段时间内没有站点切换,但之后,每两页就发生一次。我向你保证这不是偏见。
这是我的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

请帮帮我,我好害怕,好像我的电脑被阿帕奇恶魔附身了。

最佳答案

阅读:
http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html
这描述了在Apache /MODYWSGI下运行Django时,可以为站点混合响应的所有常见原因。
除此之外,如果不小心让站点共享一个公共父域,您还可以看到问题。为此,如果每个站点都已设置并且有效地共享同一个cookie,则可能需要调整cookie域或名称。
还要注意为所有站点(如memcache)共享公共后端服务,因为只要不同的站点对数据使用相同的密钥,就可能发生争用。为了实现这个设置,需要使用一个不同的memcache key前缀来保持数据的独立性。

关于python - 使用Apache和多个Django站点的行为奇怪,不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19603622/

10-12 00:21
查看更多