Nginx对上游服务的心跳检测健康检查

nginx对上游服务器的健康检查默认采用惰性策略,可以集成
nginx_upstream_check_module模块来进行主动健康检查
nginx_upstream_check_module支持tcp心跳和http心跳检测

TCP心跳检查

upstream backend{
  server 192.168.61.1:9080 weight=1;
  server 192.168.61.1:9090 weight=2;
  check interval=3000 rise=1 fail=3 timeout=2000 type=tcp;
}

配置使用TCP进行心跳检测
1.interval 检测间隔时间,此处配置了每间隔三秒检查一次
2.fail 检测失败多少次后,上游服务器被标识为不存货
3.rise 检测成功多少次后,上游服务器被标识为存活,并可以处理请求
4.timeout 检测请求超时时间配置

HTTP心跳检查

upstream backend{
  server 192.168.61.1:9080 weight=1;
  server 192.168.61.1:9090 weight=2;

  check interval=3000 rise=1 fail=3 timeout=2000 type=http;
  check_http_send "HEAD /status HTTP/1.0\r\n\r\n";
  check_http_expect_alive http_2xx http_3xx;
}

HTTP心跳检查需要额外两个配置
1.check_http_send 检查时发送的HTTP请求内容
2.check_http_expect_alive 当上游服务器返回匹配的响应状态时,认为上游服务器存活

需要注意的是,间隔时间不能太短,否则可能因为心跳检查包太多造成上游服务器挂掉,同时要设置合理的超时时间

posted @ 2022-06-30 11:09  快乐的在一起  阅读(389)  评论(0编辑  收藏  举报