HAProxy後端web服務器狀態檢測

後端web服務器狀態檢測

HAProxy有三種狀態檢測方式:
1.基於四層的傳輸端口作狀態監測
2.基於指定的uri作狀態監測
3.基於指定的URI的resquest請求頭部內容作狀態監測php

基於四層的傳輸端口作狀態監測

四層傳輸時能夠基於ip或者port作監測,也能夠將ip和port監測在後端服務器上的另外一個地址和端口用來實現數據通道和監測通道的分離
示例:
1.修改配置文件html

[root@localhost ~]# vim /etc/haproxy/haproxy.cfg 
frontend web
 bind 172.20.27.20:80
 mode tcp
 use_backend web_server
backend web_server
 server web1 192.168.27.21 check addr 192.168.27.21 port 80 inter 3s fall 3 rise 5
 server web2 192.168.27.22 check addr 192.168.27.22 port 80 inter 3s fall 3 rise 5

測試
將web1的nginx服務中止nginx

[root@localhost ~]# nginx -s stop

查看狀態頁面
HAProxy後端web服務器狀態檢測web

基於指定的uri作狀態監測

指定uri作狀態監測是,在後端服務器上創建一個用戶沒法訪問到的頁面,而後再haproxy上對此頁面作監測,若是能訪問到此頁面則表示後端服務器正常
示例:
1.在web2上建立一個moniter-page,僅用於探測,不給用戶鏈接vim

[root@web2 ~]# mkdir /apps/nginx/html/monitor-page 
[root@web2 ~]# echo ojbk > /apps/niginx/html/monitor-page/index.php     #網頁文件建立在用戶沒法訪問到的地方

2.修改haproxy配置文件後端

frontend web
 bind 172.20.27.20:80
 mode http
 use_backend web_server
 option httpchk GET /monitor-page/index.html HTTP/1.0   #添加須要監測的uri
backend web_server
 server web1 192.168.27.21 check addr 192.168.27.21 port 80 inter 3s fall 3 rise 5
 server web2 192.168.27.22 check addr 192.168.27.22 port 80 inter 3s fall 3 rise 5

查看狀態頁面
HAProxy後端web服務器狀態檢測
GET的監測方式存在一點問題,若是頁面文件很大,頁面每隔幾面就須要完整的傳輸一次,這樣就形成了沒必要要的了網絡消耗,因此將探測方式改成只查看請求頭部內容作狀態監測bash

基於指定的URI的resquest請求頭部內容作狀態監測

基於uri的request請求頭部的狀態作監測和url作監測相似
示例:
1.修改haproxy的配置文件服務器

listen web
 bind 172.20.27.20:80
 mode http
 option httpchk HEAD /monitor-page/index.html HTTP/1.0      #改成監測HEAD只監測頁面的狀態
 server web1 192.168.27.21:80 weight 1 check  inter 3s fall 3 rise 5
 server web2 192.168.27.22:80 weight 1 check  inter 3s fall 3 rise 5

2.在web1上建立監測文件網絡

[root@web1 ~]# echo ojbk > /apps/nginx/html/monitor-page/index.html

3.查看狀態
HAProxy後端web服務器狀態檢測
注意:用於探測的頁面須要和開發進行協商,不然可能形成頁面的丟失,將後端服務器所有down形成事故app

相關文章
相關標籤/搜索