max_fails和fail_timeout参数是配合使用的,按默认值,当某台upstream server挂了,表示在10s(fail_timeout)之内,有1(max_fails)个请求打到这台挂了的服务器,nginx就会把这台upstream server设为down机的状态,时长是10s,在这10s内如果又有请求进来,就不会被转到这台server上,过了10s重新认为这台server又恢复了
---------------------
作者:w_albert
来源:CSDN
原文:https://blog.csdn.net/zhaowenbo168/article/details/53000451
版权声明:本文为博主原创文章,转载请附上博文链接!

 

fail_timeout=0表示不检测

 

location / {
root html;
index index.html index.htm;
http://localhost; //可通过域名访问


proxy_connect_timeout 1; #单位为秒
proxy_send_timeout 1;
proxy_read_timeout 1;
}
---------------------
作者:莫弃c
来源:CSDN
原文:https://blog.csdn.net/qq_29311303/article/details/52887609
版权声明:本文为博主原创文章,转载请附上博文链接!

 

proxy_connect_timeout 1; #单位为秒
proxy_send_timeout 1; 
proxy_read_timeout 1; 

表示一个请求到某个服务器,1s之后没有响应就发向另一个服务器

 

 

upstream hello.api.com{
ip_hash;
server 127.0.0.1:8080 fail_timeout=10;
server 127.0.0.1:8081 fail_timeout=10;
server 127.0.0.1:8082 fail_timeout=10;
server 127.0.0.1:8083 fail_timeout=10;
server 127.0.0.1:8084 fail_timeout=10;
server 127.0.0.1:8085 fail_timeout=10;
server 127.0.0.1:8086 fail_timeout=10;
server 127.0.0.1:8087 fail_timeout=10;
server 127.0.0.1:8088 fail_timeout=10;
}

 

location / {
proxy_pass http://hello.api.com;
proxy_redirect default;

proxy_connect_timeout 1; #单位为秒
#proxy_send_timeout 1;
#proxy_read_timeout 1;
}

 

这样配置之后,第一次请求不通,需要花费5秒钟时间,来找到合适的服务器,然后接下来的10内,正确服务器之前的服务器都不会接受请求了,所以只要100多ms,每隔10s,会有一个5s。