cd /etc/nginx/sites-available/

cd /etc/nginx/sites-available/

我有两个 HTTP 服务器。其中一个 (A) 监听端口 3000,另一个 (B) 监听端口 4000。此外,我有两个域example1.comexample2.com。另一方面,我有一个 nginx 服务器监听端口 80。

我希望当请求使用example1.com域时从服务器 A 获取响应,当请求使用时从服务器 B 获取响应example2.com

我应该如何配置 nginx?

答案1

您必须使用proxy_pass(这可能需要更多的配置)

http://wiki.nginx.org/HttpProxyModule#proxy_pass

http {
  server {
    server_name www.example1.com;

    root /var/www/example1.com/htdocs;

    location / {
      proxy_pass http://127.0.0.1:3000/;
      // more configuration
    }
  }

  server {
    server_name www.example2.com;

    root /var/www/example2.com/htdocs;

    location / {
      proxy_pass http://127.0.0.1:4000/;
      // more configuration
    }
  }
}

答案2

您可以为 example1.com 和 exmaple2.com 设置 vhost 和别名

cd /etc/nginx/sites-available/

为您的域名创建一个虚拟主机,有关更多详细信息,请点击此链接。 http://wiki.nginx.org/VirtualHostExample

http {
  index index.html;
 
  server {
    server_name www.example1.com;
    access_log logs/example2.access.log main;
 
    root /var/www/example.com/htdocs;
  }
 
  server {
    server_name www.exampl2.com;
    access_log  logs/example2.access.log main;
 
    root /var/www/example2.com/htdocs;
  }
}

相关内容