nginx嵌套在上游

这是我目前的上游定义

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

每个请求都会发送到caching服务器,当请求停止时,请求将转到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; } 

…当caching服务器出现故障时,nginx将采用应用程序服务器集群并将在1和2之间平衡?

不,现在不支持以这种方式嵌套。 http://nginx.org/docs/http/ngx_http_upstream_module.html#server上的文档在server指令接受什么types的参数方面很清楚。

另一方面,你是否确定在现有的configuration中, nginx不会平衡appserver-1和-2之间的负载,如果你指定两者都作为backup ? 文档并不具体说明在这样的情况下会有什么样的行为; 我认为指定两个backup服务器应该使nginx平衡所有这些备份服务器之间的请求; 如果情况并非如此,但是您需要它,那么也许您应该logging一个RfE: http ://nginx.org/en/support.html。

当然,你可以在同一个nginx.conf的其他一些端口上为你的app-server-XX创build一个单独的“服务器configuration”,然后根据需要进行configuration。 那么你可以在你的“mybackend”上游使用它,就像你之前说的那样。