六月学习之Haproxy高级功能(服务器状态监测)
  eHipUjOuzYYH 2023年11月13日 17 0

6、Haproxy高级功能

6.4、服务器状态监测

基于端口做状态检测,此为默认方式

基于指定URI做状态检测

基于指定URI的request请求头部内容做状态检测

6.4.1、httpchk参数

option httpchk指令给予http协议来做健康检查,只有返回状态码为2XX或3XX的才认为是健康,其余所有状态码都认为不健康
如果不设置该选项时,默认采用tcp做健康检查。只要能建立tcp就表示健康
option httpchk语法:
option httpchk
option httpchk <uri>:检查的uri路径,默认为/,接受带有查询参数的uri
option httpchk <method> <uri>:http检查使用的方法,建议采用HEAD方法
option httpchk <method> <uri> <version>:检查的HTTP协议版本,默认为HTTP/1.0,如果修改为HTTP/1.1,还强制要求指定HOST,中间使用\r\n隔离

6.4.2、基于端口检测

通过监听端口进行健康检测
这种检测方式,haproxy只会去检查后端server的端口,并不能保证服务的真正可用
vim /etc/haproxy/haproxy.cfg
listen http_proxy 0.0.0.0:80
    mode http
    balance roundrobin
    server web1 172.16.1.7:80 check #基于tcp检测端口
    server web2 172.16.1.7:80 check

6.4.3、基于URI检测

通过URI获取进行健康检测,通过GET后端服务的web页面,基本上可以代表后端服务的可用性

vim /etc/haproxy/haproxy.cfg
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

6.4.4、基于URI头检测

通过request获取的头部信息进行匹配,然后进行健康检测
将健康检查的请求发送至后端节点的80端口,然后与Host进行匹配,用来确定该后端节点是否正常

vim /etc/haproxy/haproxy.cfg
listen http_proxy 0.0.0.0:80
    mode http
    balance roundrobin
    option httpchk HEAD / HTTP/1.1\r\nHost:\ proxy.qingchen.com    # head减少网络消耗
    server web1 172.16.1.7:80 check port 80
    server web2 172.16.1.8:80 check port 80
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  38gcbVXUBcLA   2023年11月26日   25   0   0 服务器htmlHTTP
  YKMEHzdP8aoh   2023年11月30日   33   0   0 vimUDP
  xIUntf9oR6GI   2023年11月28日   31   0   0 sedvim基础命令
  38gcbVXUBcLA   2023年11月24日   25   0   0 服务器客户端HTTP
  KRsXEGSB49bk   2023年11月24日   49   0   0 TCPHTTP首部
  eHipUjOuzYYH   2023年12月06日   29   0   0 nginxHTTP
  38gcbVXUBcLA   2023年11月25日   29   0   0 服务器客户端HTTP