我的设置基本如下:我将两个域名指向运行 Ubuntu 10.04 的 VPS。我使用 nginx 前端和运行带有 mod-wsgi 的 Django 的 Apache(没问题,运行正常)。
Nginx 代理得很好,Apache 也完成了它的工作,但所有请求都被第一个 Virtualhost 接收,即使 server_name 不应该匹配。因此 domain1.com 和 domain2.com 都给我相同的网页。非常感谢任何想法/答案!如果需要澄清任何事情,请告诉我。
nginx 服务器配置
server {
listen 80 default;
server_name domain1.com;
location / {
proxy_pass http://localhost:8001;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name domain2.com;
location / {
proxy_pass http://localhost:8001;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Apache conf:
NameVirtualHost *:8001
<VirtualHost *:8001>
ServerAdmin webmaster@localhost
ServerName domain1.com
ServerAlias www.domain1.com
...
</VirtualHost>
<VirtualHost *:8001>
ServerAdmin webmaster@localhost
ServerName domain2.com
ServerAlias www.domain2.com
...
</VirtualHost>
答案1
CMIIW,
我认为你也必须传递 Host 标头
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
答案2
请注意,HTTP Host 标头未被转发...