Haproxy中几种健康检查的使用

在Haproxy中有httpchk、ssl-hello-chk

下面来逐个介绍下这几种健康检查的使用,了解了这些就应该清楚知道怎么设置haproxy对后端服务的检查检查了。

一、option httpchk

从字面理解,我都能知道大概含义,http check,没错,这个设置表示开启后端服务器的http健康检查。下面来看下在haproxy中是如何设置的。

通用格式:

option httpchk
option httpchk <uri>
option httpchk <method> <uri>
option httpchk <method> <uri> <version>

在default、backend、listen使用,禁止在frontend使用。

method:可以指定http协议中的方法,可参考:HTTP协议中的14种请求方法,默认使用 OPTIONS,然使用OPTIONS  对后端服务器的性能影响最小。

uri:默认 / ,也可以设置成其他的地址,也可以使用query的格式。

version:http的协议版本,可选项 HTTP/1.0和HTTP/1.1,默认HTTP/1.0,在有一些web服务中,需要加上HOST的信息,可以在HTTP/1.1后需要加上/r/n拼接HOST,例如:HTTP/1.1\r\nHost:www

例如:

option httpchk /chk.html
option httpchk OPTIONS /chk.html
option httpchk OPTIONS /chk.html HTTP/1.0
以上三个等同,只是写法不一样。

option httpchk OPTIONS /index.php?abc=abc HTTP/1.1\r\nHost:www

Tips 1:之前和一个朋友在谈及这个问题时,他使用如下的代码设置:

option  httpchk GET http://www.baidu.com/ HTTP/1.0

#这个设置的也搞不清楚,原理是什么?这个还不算诡异,更诡异的是:

option  httpchk GET abc://aaaaaaaaaaa HTTP/1.0 ,这个依旧可以。在nginx的日志中,
依旧可以看到返回200

二、option ssl-hello-chk

check-ssl

option tcp-check

option redis-check

option smtpchk
option smtpchk <hello> <domain>

option mysql-check [ user <username> [ post-41 ] ]

option pgsql-check [ user <username> ]

http-check disable-on-404

http-check expect [!] <match> <pattern>

check-send-proxy

inter <delay>
fastinter <delay>
downinter <delay>

timeout check <timeout>

check

max-spread-checks <delay in milliseconds>
spread-checks <0..50, in percent>

 

a

Haproxy中几种健康检查的使用》上有1条评论

  1. Pingback引用通告: Haproxy中 global 部分的配置 | 精彩每一天

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>