nginx 嵌套上游

nginx 嵌套上游

这是我当前的上游定义

upstream mybackend {
  server cache-server;
  server app-server-1 backup;
  server app-server-2 backup;
}

每个请求都转到缓存服务器,当缓存服务器关闭时,请求将转到应用服务器 1,而不会在应用服务器 1 和应用服务器 2 之间进行平衡。

可以做这样的事吗?

upstream mybackend {
  server cache-server;
  server app-server-cluster backup;
}

upstream app-server-cluster{
  server app-server-1;
  server app-server-2;
}

...当缓存服务器宕机时,nginx 将接管应用服务器集群并在 1 和 2 之间实现平衡?

答案1

不,目前不支持这种方式的嵌套。文档位于http://nginx.org/docs/http/ngx_http_upstream_module.html#serverserver该指令接受什么类型的参数非常清楚。

另一方面,您是否确定在现有配置中nginx,如果同时指定 appserver-1 和 -2,则不会平衡它们之间的负载backup?文档并未具体说明在这种情况下应采取何种行为;我认为指定两台backup服务器应该可以nginx平衡所有这些备份服务器之间的请求;如果不是这种情况,但您需要这样做,那么也许您应该记录 RfE:http://nginx.org/en/support.html

答案2

当然,您可以在同一 nginx.conf 中的其他端口上为您的 app-server-XX 创建单独的“服务器配置”,并根据需要进行配置。然后,您可以按照之前所说的在“mybackend”上游中使用它。

相关内容