⑨.服务器状态检测

检测的三种方式:

  • 基于端口做状态检测 此为默认方式
  • 基于指定URI做状态检测
  • 基于指定URI的request请求头部内容做状态检测
    1.httpchk参数
  • option httpchk指令基于http协议来做健康检查,只有返回状态码为 2xx3xx 的才认为是健康,其余状态码都认为不健康
  • 如果不设置该选项是,默认采用tcp做健康检查,只要能建立tcp连接就表示健康
  • option httpchk语法:
    1.option httpchk
    2.option httpchk : 检查的uri路径,默认为/. 接受带有查询参数的uri
    3.option httpchk : http检查使用的方法,建议采用HEAD方法
    4.option httpchk : 检查的HTTP协议版本,默认为HTTP/1.0,如果改为HTTP/1.1,还强制要求指定HOST,中间使用\r\n隔离
listen http_proxy 0.0.0.0:80
    mode http
    balance roundrobin
    option httpchk GET /index.html  # 基于URI,会消耗网络带宽
    server web1 172.16.1.7:80 check port 80
    server web2 172.16.1.7:80 check port 80


HEAD 头部检查
listen http_proxy 0.0.0.0:80
    mode http
    balance roundrobin
    option httpchk HEAD / HTTP/1.1\r\nHOST:\ proxy.yangyijing.cn #head 减少网络消耗
    server web1 172.16.1.7:80 check port 80
    server web2 172.16.1.7:80 check port 80

2.基于端口进行检测

  • 通过监听端口进行健康检测
  • 这种检测方式 haproxy只会去检查后端server的端口,并不能保证服务的真正可用
backend app
    balance     roundrobin
    server  app1 192.168.1.254:80 check
    server  app2 192.168.1.254:81 check

posted @ 2022-07-26 11:39  老夫聊发少年狂88  阅读(381)  评论(0编辑  收藏  举报