2011-03-21 96 views
1

我有3个不同设置的django项目,2个子域下的项目parents.abc.com,teachers.abc.com and abc.com.它们都属于共享的apache实例。这里是我的httpd配置文件:django请求混淆了吗?

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
CustomLog /home/user/logs/user/access_django.log combined 
ErrorLog /home/user/logs/user/error_django.log 
KeepAlive Off 
Listen 37049 
MaxSpareThreads 3 
MinSpareThreads 1 
ServerLimit 1 
SetEnvIf X-Forwarded-SSL on HTTPS=1 
ThreadsPerChild 5 
WSGIDaemonProcess django processes=5 python-path=/home/user/webapps/django:/home/user/webapps/django/lib/python2.6 threads=1 
WSGIPythonPath /home/user/webapps/django:/home/user/webapps/django/lib/python2.6 
NameVirtualHost *:37049 

<VirtualHost *:37049> 
     WSGIScriptAlias//home/user/webapps/django/abc.wsgi 
     ServerName abc.com 
     ServerAlias abc.com 
</VirtualHost> 
<VirtualHost *:37049> 
     WSGIScriptAlias//home/user/webapps/django/parents.wsgi 
     ServerAlias parents.abc.com 
</VirtualHost> 

<VirtualHost *:37049> 
     WSGIScriptAlias//home/user/webapps/django/teachers.wsgi 
     ServerAlias teachers.abc.com 
</VirtualHost> 

我的问题来(重新启动后)如果我访问parents.abc.com,其次是teachers.abc.com(反之亦然),我会遇到错误的网址第二个,因为它似乎是引用第一个项目的urls.py。即teachers.abc.com正在查看parents.abc.com的设置文件(反之亦然)。

任何人都可以对此有所了解吗?

+0

@ Tom-Gruner是对的,你也可能想结账http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango并仔细阅读 – Stefano 2011-05-23 16:10:12

回答

1

我认为你需要在每个虚拟主机指定的服务器名称

添加在:

ServerName parents.abc.com 

和:

ServerName teachers.abc.com 

ServerAlias,据我所知,本身就是不足以定义基于名称的虚拟主机。