Haproxy負載均衡器

2021-08-08 12:02:01 字數 3959 閱讀 7155

haproxy 提供高可用性、負載均衡以及基於 tcp 和 http 應用的**,支援虛擬主機。

haproxy的特點是:

1、支援兩種**模式:tcp(四層)和http(七層),支援虛擬主機;

2、能夠補充nginx的一些缺點比如session的保持,cookie的引導等工作

3、支援url檢測後端的伺服器出問題的檢測會有很好的幫助。

4、更多的負載均衡策略比如:動態加權輪循(dynamic round robin),加權源位址雜湊(weighted source hash),加權url雜湊和加權引數雜湊(weighted parameter hash)已經實現

5、單純從效率上來講haproxy更會比nginx有更出色的負載均衡速度。

6、haproxy可以對mysql進行負載均衡,對後端的db節點進行檢測和負載均衡。

10、不能做web伺服器即cache。

實驗環境:

系統 rhel6.5 關閉防火牆

實驗主機三颱:

172.6.6.20 haproxy

172.6.6.30 web30 apache

172.6.6.6 web6 apache

[root@rhel6-vm2 ~]# rpmbuild -tb haproxy-1.4.23.tar.gz

#如果提示沒有rpmbuild命令就需要先安裝rpm-build:

yum install rpm-build -y
[root@rhel6-vm2 ~]# rpm -ivh /root/rpmbuild/rpms/x86_64/haproxy-1.4.23-1.x86_64.rpm

[root@rhel6-vm2 haproxy]# cat haproxy.cfg

# this config needs haproxy-1.1.28 or haproxy-1.2.1

global

log 127.0.0.1 local0 #指定日誌裝置

#log 127.0.0.1 local1 notice

log loghost local0 info #指定日誌型別,還有 err warning debug

maxconn 65535 #併發最大連線數量

chroot /usr/share/haproxy #jail 目錄

uid 99 #使用者

gid 99 #組

daemon #後台執行

#debug

#quiet

defaults

log global

mode http #預設使用 http 的 7 層模式 tcp: 4 層

option httplog #http 日誌格式

option dontlognull #禁用空鏈結日誌

retries 3 #重試 3 次失敗認為伺服器不可用

option redispatch #當 client 連線到掛掉的機器時,重新分配到健康的主機

maxconn 65535

contimeout 5000 #連線超時

clitimeout 50000 #客戶端超時

srvtimeout 50000 #伺服器端超時stats uri /status #haproxy 監控頁面

listen www.lockey.com *:80#監聽的例項名稱,位址和埠

balance roundrobin#負載均衡演算法

# mkdir /usr/share/haproxy

# /etc/init.d/haproxy start

測試負載for i in ;do curl localhost;done

訪問 haproxy 監控頁面:

stats uri /status #監控頁面位址

stats auth admin:lockey #管理帳號和密碼

stats refresh 5s #重新整理頻率

$modload imudp #接受 haproxy 日誌

$udpserverrun 514

local0.* /var/log/haproxy.log #日誌檔案位置

# /etc/init.d/rsyslog restart

要實現haproxy+keepalived就需要額外再多加乙個主機(172.6.6.10,haproxy+keepalived)形成主從模式master-backup

master(172.6.6.20)配置:

# cat /etc/keepalived/keepalived.conf

! configuration file for keepalived

vrrp_script check_haproxy

global_defs

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id lvs_devel

}vrrp_instance vi_1

virtual_ipaddress

track_script

}

backup(172.6.6.10)配置:

# cat /etc/keepalived/keepalived.conf

! configuration file for keepalived

vrrp_script check_haproxy

global_defs

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id lvs_devel

}vrrp_instance vi_1

virtual_ipaddress

track_script

}

關於以上配置中涉及到的檢測指令碼(兩台keepalived主機都需要):

[root@rhel6-vm2 opt]# cat check_haproxy.sh

#!/bin/bash

/etc/init.d/haproxy status &> /dev/null || /etc/init.d/haproxy restart &> /dev/null

if [ $? -ne 0 ];

then

/etc/init.d/keepalived stop &> /dev/null

fi

測試描述:

在外部主機的瀏覽器中訪問172.6.6.99(virtual ip),會分別得到來自172.6.6.30和172.6.6.6的apache服務返回的頁面。起初虛擬ip在keepalived master節點上,如果我們停掉了主控節點的keepalived服務,那麼虛擬ip就會轉移到備份節點(backup)上,這稱之為ip漂移。只要兩個控制節點有乙個是正常執行的,那麼服務就不會中斷。

HAProxy負載均衡器後續篇

51cto.com 獨家特稿 雖然我們看 haproxy 的官方文件確實配置內容比較多,但其實我們用於線上環境,僅此幾條就夠用了,這也是大家說 haproxy 簡單的原因,haproxy 的對應配置檔案如下所示 加上日誌支援,如下所示 vim etc syslog.conf 新增 local3.va...

負載均衡器

負載均衡器f5 負載均衡是高可用網路基礎架構的關鍵元件,通常用於將工作負載分布到多個伺服器來提高 應用 資料庫或其他服務的效能和可靠性。負載均衡器可以處理什麼樣的請求?負載均衡器的管理員能主要為下面四種主要型別的請求設定 規則 負載均衡器如何選擇要 的後端伺服器?負載均衡器一般根據兩個因素來決定要將...

負載均衡器簡介

負載均衡器可以根據實際的響應時間制定優先順序交付決策,從而實現高效能 智慧型化流量管理,達到最佳的伺服器群效能。採用第七層應用控制還可以減少通訊高峰期的錯誤訊息,因為差錯控制和流量管理技術可以偵測到一些錯誤資訊,並透明地將會話重定向到另乙個伺服器,使使用者順利地進行使用。例如,伺服器 a不可用或者資...