nginx 前端 Apache 后端的问题

nginx 前端 Apache 后端的问题

我的设置基本如下:我将两个域名指向运行 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 标头未被转发...

nginx proxy_pass 文档

相关内容