具有多个后端域的Nginx反向代理

时间:2015-10-10 16:42:08

标签: nginx reverse-proxy

我有2台服务器: -

服务器1:NGINX反向代理。

服务器2:具有5-6个网站(不同域名)的NGINX

所以基本上,所有用户都会来到服务器1,它将代理传递到服务器2的流量并获得响应。服务器1还将执行缓存,WAF等。

以下是我对服务器1的配置: -

server {
  listen 80;
  server_name example.com www.example.com;

  location ~* {
     proxy_pass http://mysite:80;
}
}

server {
  listen 80;
  server_name server.com www.server.com;

  location ~* {
     proxy_pass http://mysite:80;
}
}

在我的服务器2中,在NGINX的virtual.conf中,我有以下配置:

index index.php index.html;
server {
    listen   80;
    server_name  example.com www.example.com;

    location / {
        root   /var/www/websites/example/;
        include location-php;
    }
}

    server {
        listen   80;
        server_name  server.com www.server.com;

        location / {
            root   /var/www/websites/server/;
            include location-php;
        }
    }

但是,无论何时我转到http://example.comhttp://server.com(通过Sever 1作为反向代理执行),它都会显示服务器2的默认NGINX页面。我不确定我做错了什么。这种类型的设置也是一种正确的做事方式吗?

1 个答案:

答案 0 :(得分:0)

这是您的主机问题 由于您的上游名称是 mysite ,因此上游请求中的主机名也是 mysqsite
因此主机不与后端服务器匹配。

您可以通过在 proxy_pass 之前添加指令来解决此问题:
proxy_set_header Host server.com