有關高負載均衡方法比較多,軟體如haproxy、nginx和lvs,硬體如f5。
haproxy 簡介
haproxy 是一款高效能tcp/http 反向**負載均衡伺服器,目前用它做前端**,tcp負載。
haproxy原理
haproxy提供高可用性、負載均衡以及基於tcp(第四層)和http(第七層)應用的**,支援虛擬主機,它是免費、快速並且可靠的一種解決方案。
haproxy特別適用於那些負載特別大的web站點,這些站點通常又需要會話保持或七層處理。haproxy執行在時下的硬體上,完全可以支援數以萬計的併發連線,並且它的執行模式使得它可以很簡單安全的整合進您當前的架構中,同時可以保護你的web伺服器不被暴露到網路上。
haproxy實現了一種事件驅動、單一程序模型,此模型支援非常大的併發連線數。多程序或多執行緒模型受記憶體限制、系統排程器限制以及無處不在的鎖限制,很少能處理數千併發連線。
事件驅動模型因為在有更好的資源和時間管理的使用者端(user-space)實現所有這些任務,所以沒有這些問題。此模型的弊端是,在多核系統上,這些程式通常擴充套件性較差。這就是為什麼他們必須進行優化以使每個cpu時間片(cycle)做更多的工作。
haproxy的優點
(1)免費開源,穩定性也是非常好。單haproxy也跑得不錯,穩定性可以與硬體級的f5相媲美。
(2)根據官方文件,haproxy可以跑滿10gbps,這個數值作為軟體級負載均衡器是相當驚人的。
(3)haproxy支援連線拒絕:因為維護乙個連線的開啟的開銷是很低的,有時我們很需要限制攻擊蠕蟲(attack bots),也就是說限制它們的連線開啟從而限制它們的危害。這個已經為乙個陷於小型ddos攻擊的**開發了而且已經拯救了很多站點,這個優點也是其它負載均衡器沒有的。
(4)haproxy支援全透明**(已具備硬體防火牆的典型特點):可以用客戶端ip位址或者任何其他位址來連線後端伺服器。這個特性僅在linux 2.4/2.6核心打了tcp proxy補丁後才可以使用。這個特性也使得為某特殊伺服器處理部分流量同時又不修改伺服器的位址成為可能。
(5)haproxy現多於線上的mysql集群環境,我們常用於它作為mysql(讀)負載均衡。
(6)自帶強大的監控伺服器狀態的頁面,實際環境中我們結合nagios進行郵件或簡訊報警。
(7)haproxy支援虛擬主機,許多朋友說它不支援虛擬主機是錯誤的,通過測試我們知道,haproxy是支援虛擬主機的。
#解壓tar -zxvf haproxy-1.6.9.tar.gz
cd haproxy-1.6.9
#安裝make target=linux2628 arch=x86_64 prefix=/usr/local/haproxy
make install prefix=/usr/local/haproxy
#引數說明
target=linux26 #核心版本,使用uname -r或者cat /proc/version檢視核心,如:2.6.18-371.el5,
此時該引數就為linux26;kernel 大於2.6.28的用:target=linux2628
arch=x86_64 #系統位數
#/usr/local/haprpxy為haprpxy安裝路徑
prefix=/usr/local/haprpxy
配置:vim /usr/local/haproxy/haproxy.cfg
配置haproxy
新建haproxy.cfg配置檔案,內容如下:
安裝haproxy和haproxy命令
haproxy系列文章 centos自帶了haproxy,但可能版本比較老。可以在ius源上找到最新穩定版的haproxy。cat ius name iusrepo baseurl stable centos releasever basearch gpgcheck 0 enable 1 eofyu...
haproxy 安裝啟動
前段時間因為安全考慮需要mysql 做內網隔離,再需要的時候開啟 通過外網來進行訪問,同事推薦了haproxy,官網有些慢,這裡通過一些文章可以正常的開啟haproxy,這裡紀錄一下,希望能幫助到大家 2.將haproxy 1.7.8.tar.gz拷貝至 opt目錄下,解壓縮 tar zxvf ha...
haproxy安裝配置
haproxy提供高可用性 負載均衡以及基於tcp和http應用的 支援虛擬主機,它是免費 快速並且可靠的一種解決方案。haproxy特別適用於那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。haproxy執行在當前的硬體上,完全可以支援數以萬計的併發連線。並且它的執行模式使得它可以...