三种状态监测方式: •基于四层的传输端口做状态监测
server 172.18.200.103 172.18.200.103:80 check port 9000 addr 172.18.200.104 inter 3s fall 3 rise 5 weight 1
•基于指定URI 做状态监测
•基于指定URI的request请求头部内容做状态监测
option httpchk
•option httpchk <uri>
•option httpchk <method> <uri>
•option httpchk <method> <uri> <version>
示例:
listen web_prot_http_nodes
bind 192.168.7.102:80
mode http
log global
option httpchk GET /wp-includes/js/jquery/jquery.js?ver=1.12.4 HTTP/1.0 #基于指定URL
#option httpchk HEAD /wp-includes/js/jquery/jquery.js?ver=1.12.4 HTTP/1.0\r\nHost:\192.168.7.102 #通过request获取的头部信息进行匹配进行健康检测,节省很多不必要的网络开销,降低磁盘IO。
server 192.168.7.102 blogs.studylinux.net:80 check inter 3000 fall 3 rise 5
server 192.168.7.101 192.168.7.101:8080 cookie web1 check inter 3000 fall 3 rise 5
实战演示:
在后端服务器(192.168.37.37)新建一个monitor_page目录,并在目录下创建一个index.html文件。
[root@centos37html]#mkdir /var/www/html/monitor_page
[root@centos37html]#echo OK > monitor_page/index.html
vim /etc/haproxy/haproxy.cfg
#官网业务访问入口=====================================
listen WEB_PORT_80
bind 192.168.37.17:80
mode tcp 改为tcp类型,也会从http服务进行访问。
rspidel Server:.*
#option httpchk GET /monitor_page/index.html HTTP/1.0
option httpchk HEAD /monitor_page/index.html HTTP/1.0\r\nHost:\192.168.37.17 生产用,用HEAD模式,可以节省很多不必要的网络开销,降低磁盘IO,声明是从17的IP地址发起的请求。
server web1 192.168.37.27:80 check inter 3000 fall 3 rise 5
server web2 192.168.37.37:80 check inter 3000 fall 3 rise 5
改为HEAD模式(只获取头部信息,并设置为每五秒监控一次),就不会在后端服务器日志中不会再显示文件大小,节省不必要的网络开销,降低磁盘IO。
在网页上进行状态页检查,此时可以看到后端服务器(192.168.37.27)没有monitor_page此目录,就会显示down机现象。