Nginx:如何从不同的服务器名称:端口对将代理传递到同一台服务器?

Nginx:如何从不同的服务器名称:端口对将代理传递到同一台服务器?

我想要这样的反向代理:

foo.bar.com:3000 -> 本地主机:4000 bar.foo.com:8080 -> 本地主机:4000

我认为如果这是可能的,它可能看起来像这样:

server {
  listen 3000
  server_name foo.bar.com

  listen 8080
  server_name bar.foo.com

  proxy_pass localhost:4000
  #A lot more configuration
}

我知道我可以创建两个server指令,每个指令都监听不同的指令portserver_name但都监听proxy_pass到 localhost:4000。

这种方法的问题在于:每个server指令的配置都存在冗余。(配置是重复的 - 每个server指令一个)。

答案1

您可以添加多个指令和多个主机名服务器名称

server {
    listen 3000;
    listen 8080;
    server_name foo.bar.com bar.foo.com;

    location / {
        proxy_pass http://localhost:4000;
    }
}

相关内容