配置HAProxy負載平衡集群

2021-09-24 17:44:21 字數 4342 閱讀 6147

1 問題

準備4臺linux伺服器,兩台做web伺服器,1臺安裝haproxy,1臺做客戶端,實現如下功能:

客戶端訪問haproxy,haproxy分發請求到後端real server

開啟haproxy監控頁面,及時檢視排程器狀態

設定haproxy為開機啟動

2 方案

使用4臺虛擬機器,1臺作為haproxy排程器、2臺作為real server、1臺作為客戶端,拓撲結構如圖-1所示,具體配置如表-1所示。

圖-1表-1

3 步驟

實現此案例需要按照如下步驟進行。

注意事項:

將前面實驗vip、lvs等實驗的內容清理乾淨!!!!!!

刪除所有裝置的vip,清空所有lvs設定,關閉keepalived!!!

web1關閉多餘的網絡卡與vip,配置本地真實ip位址。

[root@web1 ~]# ifdown eth0

[root@web1 ~]# ifdown lo:0

[root@web1 ~]# nmcli connection modify eth1 ipv4.method manual \

ipv4.addresses 192.168.2.100/24 connection.autoconnect yes

[root@web1 ~]# nmcli connection up eth1

web2關閉多餘的網絡卡與vip,配置本地真實ip位址。

[root@web2 ~]# ifdown eth0

[root@web2 ~]# ifdown lo:0

[root@web2 ~]# nmcli connection modify eth1 ipv4.method manual \

ipv4.addresses 192.168.2.200/24 connection.autoconnect yes

[root@web2 ~]# nmcli connection up eth1

proxy關閉keepalived服務,清理lvs規則。

[root@proxy ~]# systemctl stop keepalived

[root@proxy ~]# systemctl disable keepalived

[root@proxy ~]# ipvsadm -c

[root@proxy ~]# nmcli connection modify eth0 ipv4.method manual \

ipv4.addresses 192.168.4.5/24 connection.autoconnect yes

[root@proxy ~]# nmcli connection up eth0

[root@proxy ~]# nmcli connection modify eth1 ipv4.method manual \

ipv4.addresses 192.168.2.5/24 connection.autoconnect yes

[root@proxy ~]# nmcli connection up eth1

步驟一:配置後端web伺服器

設定兩台後端web服務(如果已經配置完成,可用忽略此步驟)

步驟二:部署haproxy伺服器

1)配置網路,安裝軟體

[root@haproxy ~]# yum -y install haproxy
2)修改配置檔案

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg

global

log 127.0.0.1 local2 ###[err warning info debug]

chroot /usr/local/haproxy

pidfile /var/run/haproxy.pid ###haproxy的pid存放路徑

maxconn 4000 ###最大連線數,預設4000

user haproxy

group haproxy

daemon ###建立1個程序進入deamon模式執行

defaults

mode http ###預設的模式mode log global ###採用全域性定義的日誌

option dontlognull ###不記錄健康檢查的日誌資訊

option httpclose ###每次請求完畢後主動關閉http通道

option httplog ###日誌類別http日誌格式

option forwardfor ###後端伺服器可以從http header中獲得客戶端ip

option redispatch ###serverid伺服器掛掉後強制定向到其他健康伺服器

timeout connect 10000 #如果backend沒有指定,預設為10s

timeout client 300000 ###客戶端連線超時

timeout server 300000 ###伺服器連線超時

maxconn 60000 ###最大連線數

retries 3 ###3次連線失敗就認為服務不可用,也可以通過後面設定

listen stats 0.0.0.0:1080 #監聽埠

stats refresh 30s #統計頁面自動重新整理時間

stats uri /stats #統計頁面url

stats realm haproxy manager #進入管理解面檢視狀態資訊

stats auth admin:admin #統計頁面使用者名稱和密碼設定

#stats hide-version #隱藏統計頁面上haproxy的版本資訊

listen websrv-rewrite 0.0.0.0:80

balance roundrobin

server web1 192.168.2.100:80 check inter 2000 rise 2 fall 5

server web2 192.168.2.200:80 check inter 2000 rise 2 fall 5

3)啟動伺服器並設定開機啟動

[root@haproxy ~]# systemctl start haproxy

[root@haproxy ~]# systemctl enable haproxy

步驟三:客戶端驗證

客戶端配置與haproxy相同網路的ip位址,並使用火狐瀏覽器訪問測試排程器是否正常工作,客戶端訪問測試狀態監控頁面是否正常。訪問狀態監控頁的內容,參考圖-2所示。

圖-2備註:

queue佇列資料的資訊(當前佇列數量,最大值,佇列限制數量);

session rate每秒會話率(當前值,最大值,限制數量);

sessions總會話量(當前值,最大值,總量,lbtot: total number of times a server was selected選中一台伺服器所用的總時間);

bytes(入站、出站流量);

denied(拒絕請求、拒絕回應);

errors(錯誤請求、錯誤連線、錯誤回應);

warnings(重新嘗試警告retry、重新連線redispatches);

server(狀態、最後檢查的時間(多久前執行的最後一次檢查)、權重、備份伺服器數量、down機伺服器數量、down機時長)。

配置HAProxy負載平衡集群

步驟一 配置後端web伺服器 設定兩台後端web服務 如果已經配置完成,可用忽略此步驟 步驟二 部署haproxy伺服器配置網路,安裝軟體 echo net.ipv4.ip forward 1 sysctl.conf 開啟路由 sysctl p yum y install haproxy 修改配置檔...

配置HAProxy負載平衡集群 (隨堂筆記)

配置檔案說明 haproxy配置引數 命令列 總是具有最高優先順序 global 全域性設定程序級別引數 宣告 default listen frontend backend 配置文家由以下部分構成 default 為後續的其他部分設定預設引數,預設引數可以被後續部分重置 frontend 描述接受...

ActiveMQ 集群負載平衡

目前的架構 負載均衡方案 第二種方案呢,假設我們整個應用是個食堂,這個食堂裡面有好多飯口,每個飯口有好多大爺大媽 咦 每個飯口實現了高可用,即使有大媽不上班,還有大爺頂上。針對好多學生 使用者 實現了負載均衡,學生被基本均勻的分配到每乙個飯口上。食堂 應用 飯口 集群 大媽 伺服器 現在我們利用br...