服务器问答
我理解的:upstream 中 max_fails 对应的 fail 类型,是由参数 proxy_next_upstream error 来定义的,比如 proxy_next_upstream error timeout http_500 http_502 http_503 http_504; 表示定义了超时、500 、502 、503 、504 请求为 fail 状态。
第一种场景:
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
proxy_next_upstream_tries 3;
upstream test {
server ip1:8080 weight=10 max_fails=2 fail_timeout=30s;
server ip2:8080 weight=10 max_fails=2 fail_timeout=30s;
keepalive 200;
}
表示后台 server 在 30s 内如果失败两次(fail 类型包括超时、500 、502 、503 、504 请求),会重试 3 次请求这个后台 server,如果 3 次还是失败,则将这个 server 节点 down,请求到其他的 server 节点。
第二种场景:
proxy_next_upstream off;
proxy_next_upstream_tries 3;
upstream test {
server ip1:8080 weight=10 max_fails=2 fail_timeout=30s;
server ip2:8080 weight=10 max_f国外服务器ails=2 fail_timeout=30s;
keepalive 200;
}
此时 max_fails 不生效,server 发生问题时,该 server 后续还是会继续收到请求。
这里有个问题,如果设置为 proxy_next_upstream error,会发现第二种场景的情况吗?