Haproxy的安裝與使用

Haproxy概念

Haproxy提供高可用性肖爵、負載均衡以及基于TCP和HTTP應用的代理,支持虛擬主機臀脏,它是免費劝堪、快速并且可靠的一種解決方案。Haproxy特別適用于那些負載特大的web站點揉稚,這些站點通常又需要會保持或七層處理秒啦。Haproxy運行在當前的硬件上,完全可以支持數(shù)以萬計的并發(fā)連接搀玖。并且它的運行模式使得它可以很簡單安全的整合進您當前的架構(gòu)中余境,同時可以保護你的web服務器不被暴露到網(wǎng)絡上。
HAProxy實現(xiàn)了一種事件驅(qū)動, 單一進程模型巷怜,此模型支持非常大的并發(fā)連接數(shù)葛超。多進程或多線程模型受內(nèi)存限制 、系統(tǒng)調(diào)度器限制以及無處不在的鎖限制延塑,很少能處理數(shù)千并發(fā)連接绣张。事件驅(qū)動模型因為在有更好的資源和時間管理的用戶空間(User-Space) 實現(xiàn)所有這些任務,所以沒有這些問題关带。此模型的弊端是侥涵,在多核系統(tǒng)上,這些程序通常擴展性較差宋雏。這就是為什么他們必須進行優(yōu)化以 使每個CPU時間片(Cycle)做更多的工作芜飘。

安裝配置

  1. 下載
    wget http://www.haproxy.org/download/1.9/src/haproxy-1.9.0.tar.gz
  2. 解壓
    tar -zxvf haproxy-1.9.0.tar.gz
    mv haproxy-1.9.0.tar.gz haproxy
    cd haproxy
  3. 安裝
[root@localhost haproxy]# uname -a
Linux localhost 3.10.0-514.2.2.el7.x86_64 #1 SMP Tue Dec 6 23:06:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 
#TARGET:系統(tǒng)內(nèi)核版本, ARCH:系統(tǒng)架構(gòu)磨总,PREFIX:安裝目錄
make TARGET=linux3100 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
  1. 配置:
    vim /usr/local/haproxy/haproxy.cfg
global
        maxconn 4096 #默認最大連接數(shù)
        daemon  #以后臺形式運行harpoxy  
        #chroot      /var/lib/haproxy
        pidfile     /var/run/haproxy.pid #haproxy 進程PID文件  
        #debug
        #quiet
        nbproc 2 #設置進程數(shù)量  
 
defaults
        log     global
        mode    http #默認的模式mode { tcp|http|health }嗦明,tcp是4層,http是7層蚪燕,health只會返回OK  
        option  httplog #日志類別,采用httplog  
        option  dontlognull  #不記錄健康檢查日志信息  
        log 127.0.0.1 local0 #[日志輸出配置娶牌,所有日志都記錄在本機奔浅,通過local0輸出]  
        retries 3 #3次連接失敗就認為是服務器不可用,也可以通過后面設置  
        option redispatch  #當serverId對應的服務器掛掉后诗良,強制定向到其他健康的服務器汹桦,以后將不支持  
        maxconn 2000
        #contimeout      5000
        #clitimeout      50000
        #srvtimeout      50000
        timeout http-request    10s
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
 
listen  admin_stats bind 0.0.0.0:8888 #管理頁面端口
        mode        http
        stats uri   /dbs
        stats realm     Global\ statistics
        stats auth  admin:admin #登錄帳號密碼
 
listen  proxy-mysql bind 0.0.0.0:23306
        mode tcp
        #roundrobin #輪詢方式
       #source #類似于nginx的ip_hash
       #leastconn #最小連接數(shù)
        #static-rr,表示根據(jù)權重
        #balance leastconn #輪訓機制
        option tcplog
        option mysql-check user haproxy #在mysql中創(chuàng)建無任何權限用戶haproxy鉴裹,且無密碼
        server MySQL1 47.52.231.211:3306 check weight 1 maxconn 2000
        server MySQL2 47.52.160.124:3306 check weight 1 maxconn 2000 backup #備用機舞骆,主機不檔不啟用
        option tcpka # 是否允許向server和client發(fā)送keepalive
        #cookie 1表示serverid為1,check inter 1500 是檢測心跳頻率    
        #rise 2是2次正確認為服務器可用径荔,fall 3是3次失敗認為服務器不可用督禽,weight代表權重  

運行

[root@localhost haproxy]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
至此haproxy便安裝啟動完成了可以通過訪問http://localhost:23306/ 來查看haproxy自帶統(tǒng)計頁面數(shù)據(jù)信息。

負載均衡算法

  • roundrobin猖凛,表示簡單的輪詢赂蠢,每個服務器根據(jù)權重輪流使用,在服務器的處理時間平均分配的情況下這是最流暢和公平的算法辨泳。該算法是動態(tài)的虱岂,對于實例啟動慢的服務器權重會在運行中調(diào)整。
  • static-rr菠红,表示根據(jù)權重第岖,建議關注;每個服務器根據(jù)權重輪流使用试溯,類似roundrobin蔑滓,但它是靜態(tài)的,意味著運行時修改權限是無效的遇绞。另外键袱,它對服務器的數(shù)量沒有限制。
  • leastconn摹闽,表示最少連接者先處理蹄咖,建議關注;leastconn建議用于長會話服務付鹿,例如LDAP澜汤、SQL、TSE等舵匾,而不適合短會話協(xié)議俊抵。如HTTP.該算法是動態(tài)的,對于實例啟動慢的服務器權重會在運行中調(diào)整坐梯。
  • source徽诲,表示根據(jù)請求源IP,建議關注;對請求源IP地址進行哈希谎替,用可用服務器的權重總數(shù)除以哈希值轩拨,根據(jù)結(jié)果進行分配。

通過腳本來啟動與關閉haproxy

  1. 編寫haproxy腳本
    vim /etc/rc.d/init.d/haproxy
#!/bin/bash  
#chkconfig: 2345 10 90
#description:haproxy
BASE_DIR="/usr/local/haproxy"  
ARGV="$@"  

start()  
{  
    echo "START HAPoxy SERVERS"  
    $BASE_DIR/sbin/haproxy -f $BASE_DIR/haproxy.cfg  
}  

stop()  
{  
    echo "STOP HAPoxy Listen"  
    kill -TTOU $(cat $BASE_DIR/logs/haproxy.pid)  
    echo "STOP HAPoxy process"  
    kill -USR1 $(cat $BASE_DIR/logs/haproxy.pid)  
}  
case $ARGV in  
    
    start)  
start  
ERROR=$?  
;;  

stop)  
stop  
ERROR=$?  
;;  

restart)  
stop  
start  
ERROR=$?  
;;  

*)  
echo "hactl.sh [start|restart|stop]"  
esac  
exit $ERROR
  1. 啟動與停止haproxy
[root@localhost haproxy]# service haproxy stop
STOP HAPoxy Listen
STOP HAPoxy process
[root@localhost haproxy]# ps -ef |grep haproxy |grep -v grep
[root@localhost haproxy]# service haproxy start
START HAPoxy SERVERS

參考

http://www.cnblogs.com/tae44/p/4717334.html
https://blog.csdn.net/nimasike/article/details/48048341
https://www.cnblogs.com/dkblog/archive/2012/03/13/2393321.html
https://www.cnblogs.com/Richardzhu/p/3344676.html

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末院喜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子晕翠,更是在濱河造成了極大的恐慌喷舀,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淋肾,死亡現(xiàn)場離奇詭異硫麻,居然都是意外死亡,警方通過查閱死者的電腦和手機樊卓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門拿愧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人碌尔,你說我怎么就攤上這事浇辜。” “怎么了唾戚?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵柳洋,是天一觀的道長。 經(jīng)常有香客問我叹坦,道長熊镣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任募书,我火速辦了婚禮绪囱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘莹捡。我一直安慰自己鬼吵,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布道盏。 她就那樣靜靜地躺著而柑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荷逞。 梳的紋絲不亂的頭發(fā)上媒咳,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音种远,去河邊找鬼涩澡。 笑死,一個胖子當著我的面吹牛坠敷,可吹牛的內(nèi)容都是我干的妙同。 我是一名探鬼主播射富,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼粥帚!你這毒婦竟也來了胰耗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤芒涡,失蹤者是張志新(化名)和其女友劉穎柴灯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體费尽,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡赠群,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旱幼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片查描。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柏卤,靈堂內(nèi)的尸體忽然破棺而出冬三,到底是詐尸還是另有隱情,我是刑警寧澤闷旧,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布长豁,位于F島的核電站,受9級特大地震影響忙灼,放射性物質(zhì)發(fā)生泄漏匠襟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一该园、第九天 我趴在偏房一處隱蔽的房頂上張望酸舍。 院中可真熱鬧,春花似錦里初、人聲如沸啃勉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淮阐。三九已至,卻和暖如春刁品,著一層夾襖步出監(jiān)牢的瞬間泣特,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工挑随, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留状您,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像膏孟,于是被迫代替她去往敵國和親眯分。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 參考文檔: 1.haproxy:http://www.haproxy.org/ 本文涉及haproxy的安裝柒桑,并做...
    Netonline閱讀 2,429評論 1 51
  • 互聯(lián)網(wǎng)架構(gòu)基礎知識 一弊决、網(wǎng)站常見架構(gòu) 負載層 頁面緩存層 web層 數(shù)據(jù)層 二、運維法則 緩存為王 盡量在前端(緩...
    魏鎮(zhèn)坪閱讀 4,820評論 0 9
  • 從21天打卡行動開始魁淳,已經(jīng)堅持19天丢氢,今天第20天,倒計時1天先改!勝利就在我們眼前。 昨天接到又一個新任務―【終點到...
    葉兒老師閱讀 936評論 0 2
  • 最近走讀派開了一個壓力班蒸走,共讀《如何閱讀一本書》仇奶,讓我眼前一亮,這正是幫助我學習如何讀書一次好機會比驻,看了一下讀書計...
    wenzhu閱讀 478評論 0 0
  • 安娜閱讀的兩周里该溯,生了一場病,每個半倚半躺整夜無眠的夜晚别惦,在一聲聲向著黝黑的虛空傾吐著憤怒的狂咳中狈茉,我感覺自己對生...
    悠然6222閱讀 331評論 0 1