ngx_http_upstream_module模块说明

ngx_http_upstream_module模块中的server指令

语法: server address [parameters];
默认值:  ―
上下文:  upstream
  
范例如下:
   upstream name {
      server 10.19.1.110:8089 max_fails=1 fail_timeout=10s;
      server 10.19.1.111:8089 max_fails=1 fail_timeout=10s;
        }
  
--------------指令参数解释----------------
max_fails=number   设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。
                   失败的尝试次数默认是1。设为0就会停止统计尝试次数,即不对后端节点进行健康检查。认为服务器是一直可用的。
  
fail_timeout=time  设定服务器被认为不可用的时间段以及统计失败尝试次数的时间段。在这段时间中,服务器失败次数达到指定的尝试次数,服务器就被认为不可用。
                   默认情况下,该超时时间是10秒。
  
在实际应用当中:
1)如果后端应用是能够快速重启的应用,比如nginx的话,自带的模块是可以满足需求的。
   但是需要注意,如果后端有不健康节点,负载均衡器依然会先把该请求转发给该不健康节点,然后再转发给别的节点,这样就会浪费一次转发。
2)如果当后端应用重启时,重启操作需要很久才能完成的时候就会有可能拖死整个负载均衡器。
   此时,由于无法准确判断节点健康状态,导致请求handle住,出现假死状态,最终整个负载均衡器上的所有节点都无法正常响应请求。

 

原文地址:https://www.cnblogs.com/dzc-/p/13404984.html