nginx代理GET到一个服务器,GET&另一个服务器上的所有其他内容

nginx代理GET到一个服务器,GET&另一个服务器上的所有其他内容

我有我们的应用程序的新版本,它需要在投入生产之前进行测试。

当前有一台主机接收所有请求并使用 proxy_pass 将它们转发到 Apache。我想添加另一台服务器,并仅将一些 GET 请求转发给它。

可以配置 nginx 来做到这一点吗?

答案1

是的,您需要在配置中设置第二个上游,然后使用某些东西将特定请求发送到那里。例如:

upstream old_upstream {
    1.2.3.4:8080;
}
upstream new_upstream {
    5.6.7.8:8080;
}
set $upstream old_upstream;
if ( somecondition where you want to use the new server ) {
  set $upstream new_upstream;
}
location / {
  proxy_pass http://$upstream;
}

答案2

或者您可以简单地不使用上游并使用简短版本。

location / {
  if (somecondition for new server ) {
    proxy_pass http://5.6.7.8:8080;
    break;
  }

  proxy_pass http://1.2.3.4:8080;
}

如果有帮助请+1 :) 谢谢

相关内容