多个子域名冲突的问题:Ubuntu django nginx+apache mod_wsgi
我在我的一个子域名上安装了django应用,地址是subdomain1.mydomain.com,使用的是nginx和apache mod_wsgi,运行在Ubuntu系统上。
之前一切都很好,直到我在subdomain2.mydomain.com上安装了另一个django应用。现在subdomain1.mydomain.com却开始指向subdomain2.mydomain.com上安装的应用了。
以下是我的nginx和apache的配置文件..
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;
}
}
subdomain1.mydomain.com的apache配置
<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>
subdomain2.mydomain.com的apache配置
<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 个回答
2
我看到你们的两个Django应用程序都在同一个地址和端口上运行。
默认情况下,nginx不会转发“Host:”这个头信息。
你需要在nginx的配置文件中添加这一行:
proxy_set_header Host $host;