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不可用或者資...