如老师在这个问题下给的回答(http://coding.imooc.com/learn/questiondetail/69956.html),如下的配置是否可以实现 故障自动转移;
upstream demo-test-api {
server 1.1.1.1:8081;#线上应用
server 1.1.0.1:8081 backup;#线上备用实例
}
location /api {
# 我理解 500 和404 应该是应用本身的问题,转到另一台实例上应用没有什么用
#proxy_next_upstream http_500 | http_502 | http_503 | http_504 |http_404;
proxy_next_ http_502 |http_503| http_504;
proxy_pass http://demo-test-api;
}
还有两个问题想明确一下:
如上面的配置, backup 启用的条件是什么(线上实例没有配置任何fail条件,它的默认行为是)
504 502 都是 nginx返回给客户端的状态码,proxy_next_upstream 启到的作用是 客户端再将请求发到backup的实例上,还是nginx自己将 即将发送给客户504 502的请求 发送给backup,然后backup实例再发送响应给客户端 (不知道描述的是否清楚,我想表达的是proxy_next_upstream
是一个重定向的行为 还是内部转的行为)