nginx嵌套上游

Sas*_*oid 5 nginx

这是我目前的上游定义

upstream mybackend {
  server cache-server;
  server app-server-1 backup;
  server app-server-2 backup;
}
Run Code Online (Sandbox Code Playgroud)

每个请求都会发送到缓存服务器,当它关闭时,请求将发送到 app-server-1,而不会在 app-server-1 和 -2 之间进行平衡。

有可能做这样的事情吗?

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

upstream app-server-cluster{
  server app-server-1;
  server app-server-2;
}
Run Code Online (Sandbox Code Playgroud)

...当缓存服务器出现故障时,nginx 将采用 app-server-cluster 并在 1 和 2 之间保持平衡?

cns*_*nst 2

不,当前不支持以这种方式嵌套。http://nginx.org/docs/http/ngx_http_upstream_module.html#server上的文档非常清楚指令接受的参数类型server

另一方面,nginx如果您将两者都指定为 ,您确定在现有配置中不会平衡 appserver-1 和 -2 之间的负载吗backup?文档并没有具体说明在这种情况下预期会发生什么行为;我认为指定两台backup服务器应该可以nginx平衡所有此类备份服务器之间的请求;如果情况并非如此,但您需要如此,那么也许您应该记录一个 RfE: http: //nginx.org/en/support.html