多个子域冲突的问题:Ubuntu django nginx + apache mod_wsgi

时间:2011-02-11 13:28:22

标签: python django apache nginx mod-wsgi

我已经在我的一个子域名上安装了我的django应用程序.. subdomain1.mydomain.com 在Ubuntu上使用nginx + apache mod_wsgi。
在我在 subdomain2.mydomain.com 上安装另一个django应用程序之前,它工作正常。现在 subdomain1.mydomain.com 开始指向安装在 subdomain2.mydomain上的应用程序。 COM

这是我的nginx和apache conf ..
subdomain1.mydomain.com的 nginx配置:

upstream  subdomain1_backend  {
    server  127.0.0.1:8080;
}  
server {  
    listen       80;  
    server_name  subdomain1.mydomain.com www.subdomain1.mydomain.com;  
    location / {
        proxy_pass http://subdomain1_backend;
    }  
}  
subdomain2.mydomain.com的

nginx配置:

upstream  subdomain2_backend  {
    server  127.0.0.1:8080;
}  
server {  
    listen       80;  
    server_name  subdomain2.mydomain.com www.subdomain2.mydomain.com;  
    location / {
        proxy_pass http://subdomain2_backend;
    }  
}

apache conf for subdomain1.mydomain.com

<VirtualHost *:8080>  

 ServerAdmin admin@mydomain.com
 ServerName  subdomain1.mydomain.com
 ServerAlias www.suddomain1.mydomain.com

 DocumentRoot "/srv/webapps/subdomain1.mydomain.com"

 WSGIScriptAlias / /srv/webapps/subdomain1.mydomain.com/conf/app.wsgi  
 WSGIDaemonProcess www.subdomain1.mydomain.com user=www-data group=www-data threads=15 processes=2 maximum-requests=10000    
 WSGIProcessGroup www.subdomain1.mydomain.com  
 <Directory /srv/webapps/subdomain1.mydomain.com/app/>  
   Order deny,allow  
   Allow from all  
 </Directory>  
 ...   
 </VirtualHost></code>

apache conf for subdomain2.mydomain.com

<VirtualHost *:8080>  

 ServerAdmin admin@mydomain.com
 ServerName  subdomain2.mydomain.com
 ServerAlias www.suddomain2.mydomain.com

 DocumentRoot "/srv/webapps/subdomain2.mydomain.com"  
 WSGIScriptAlias / /srv/webapps/subdomain2.mydomain.com/conf/app.wsgi  
 WSGIDaemonProcess www.subdomain2.mydomain1.com user=www-data group=www-data threads=15   processes=2 maximum-requests=10000    
 WSGIProcessGroup www.subdomain2.mydomain.com  
 <Directory /srv/webapps/subdomain2.mydomain.com/app/>  
   Order deny,allow  
   Allow from all  
 </Directory>  
 ...   
 </VirtualHost>

谁能告诉我哪里出错了? 提前谢谢!

1 个答案:

答案 0 :(得分:2)

正如我所看到的,您的两个django应用程序都在同一个地址上运行:port

默认情况下,nginx不会转发“Host:”标头。

您必须将此行添加到nginx config:

proxy_set_header Host $host;