主要有两部分配置:upstream server 和 proxy_pass
upstream backend{
server 192.168.61.1:9080 max_fails=2 fail_timeout=10s weight=1;
server 192.168.61.1:9090 max_fails=2
fail_timeout=10s weight=1;
}
通过上游服务器的配置max_fails和fail_timeout来指定每个上游服务器,当fail_timeout时间内失败了max_fails的请求,则认为该上游服务器不可用,然后摘掉该上游服务器,在超过fail_timeout时间后,重新将该服务器加入到可用服务器列表当中进行重试
location /test {
proxy_connect_timeout 5s;
proxy_read_timeout 5s;
proxy_send_timeout 5s;
proxy_next_upstream error timeout;
proxy_next_upstream_timeout 10s;
proxy_next_upstream_tries 2;
proxy_pass http://backend;
add_header upstream_addr $upstream_addr;
}
然后进行proxy_next_upstream相关配置,当遇到配置的错误时,会重试下服务器。