nginx原生的健康检测主要涉及两个模块:ngx_http_proxy_module和ngx_http_upstream_module


一、ngx_http_upstream_module模块

upstream backend {

    server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;

}


1.max_fails

设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。 失败的尝试次数默认是1。设为0就会停止统计尝试次数,认为服务器是一直可用的。 你可以通过指令proxy_next_upstream、fastcgi_next_upstream和 memcached_next_upstream来配置什么是失败的尝试。 默认配置时,http_404状态不被认为是失败的尝试。


2.fail_timeout

设定服务器被认为不可用的时间段以及统计失败尝试次数的时间段。在这段时间中,服务器失败次数达到指定的尝试次数,服务器就被认为不可用。默认情况下,该超时时间是10秒。


二、ngx_http_proxy_module模块

1.proxy_connect_timeout

与后端服务器建立连接的超时时间