haproxy搭建web群集
????????????使用需求:負(fù)載均衡群階可以用tocat+nginx的負(fù)載均衡群集,還有l(wèi)vs負(fù)載均衡群集。三種群集相比來(lái)說(shuō),lvs性能最好,但是搭建復(fù)雜,ningx的upstream模塊支持群集,但是群集的節(jié)點(diǎn)的故障檢查功能不是很多,性能也比不上haproxy。
????????? ?相對(duì)來(lái)能實(shí)現(xiàn)什么樣的效果:對(duì)于企業(yè)的服務(wù)器(web.ftp等)能實(shí)現(xiàn)負(fù)載均衡,其中一臺(tái)服務(wù)器宕機(jī)之后能依然能上網(wǎng)站ftp。
????????? ?知識(shí)點(diǎn)的描述:1.負(fù)載均衡的常用調(diào)度算法:
????????????????????(1):RR(Round Robin),是最簡(jiǎn)單最常用的一種算法,即輪詢(xún)調(diào)度。
????????????????????(2):LC(LEAST Conections),即最小節(jié)點(diǎn)數(shù)算法,根據(jù)后端的節(jié)點(diǎn)數(shù)大小動(dòng)態(tài)分配前端請(qǐng)求
????????????????????(3):SH(Source Hashing),即基于來(lái)源訪(fǎng)問(wèn)調(diào)度算法,用于一些有Session會(huì)話(huà)記錄在服務(wù)器端的場(chǎng)景,可以基于來(lái)源的IP,Cookis等做集群調(diào)度
????????????????????(4):如果需要實(shí)現(xiàn)haproxy的高可用,可以配置前一次所講的keepalived,配置方法基本相同,需要增加一臺(tái)haproxy用來(lái)做備份,注意一點(diǎn)的是需要在防火墻上開(kāi)啟keepalived的組播地址:224.0.0.18端口
? ? ? ? ? ? 實(shí)驗(yàn)拓?fù)?#xff1a;
????
實(shí)驗(yàn)的步驟:
一:編譯安裝haproxy
????????? ? 環(huán)境:條件,安裝pcre-devel bzip2-devel兩個(gè)支持包
????????? ? 進(jìn)入目錄:cd /usr/src/haproxy-1.4.14
????????????make TARGET=linux26
????
????????haproxy服務(wù)器配置
????????????????建立Haproxy的配置文件并且將樣本負(fù)載到/etc/haproxy目錄下
????
????
????
????????最后修改haproxy.cfg的配置文件
????
????
????????由于haproxy表示系統(tǒng)服務(wù),創(chuàng)建自啟動(dòng)的腳本
????
????
二:安裝nginx并制作簡(jiǎn)單的網(wǎng)頁(yè)以便測(cè)試
????????????yum -y install pcre-devel zlib-devel
????????????tar zxf nginx-1.6.2.tar.gz
????????????cd nginx-1.6.2
????????????./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
????????????useradd -M -s /sbin/nologin nginx
????????????ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
????????????echo "node_1" > /usr/local/nginx/html/index.html
????????????建立防火墻規(guī)則:
????????????????iptables -I -INPUT -p tcp --dport -j ACCEPT
????另外的web節(jié)點(diǎn)服務(wù)器的配置一樣,為了使測(cè)試能看出效果,建議將測(cè)試頁(yè)的內(nèi)容不要保持一致
三:haproxy的日志
????????Haproxy的日志默認(rèn)是輸出到系統(tǒng)的syslog中,查看起來(lái)不是很方便,為了方便管理haproxy的日志,在生產(chǎn)環(huán)境中單獨(dú)定義
????????????????1.修改Haproxy配置文件中關(guān)于日志配置的選項(xiàng):
????????????????????????log /dev/log local0 info
????????????????????????log /dev/log local0 notice
????????????????????????這兩行配置放到Haproxy的global配置項(xiàng)目中,主要講Haproxy的info及notice日志分別記錄到不同的日志文件中
????????????????2.修改rsyslog配置
????????????????????????將Haproxy相關(guān)的配置獨(dú)立定義到Haproxy.conf,并存放在/etc/rsyslog.d下,rsyslog啟動(dòng)時(shí)會(huì)自動(dòng)加載此目錄下的所有配置文件
????????????????????????touch /etc/rsyslog.d/haproxy.conf
????????????????????????vim /etc/rsyslog.d/haproxy.conf
????????????????加入下面的內(nèi)容:
????????????????????if($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log
????????????????????& ~
????????????????????if($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-notice.log
????????????????????& ~
????????????????這部分配置將Haproxy的info日志記錄到/var/log/haproxy/haproxy-info.log下,將notice日志記錄到/var/log/haproxy/haproxy-notice.log下,其“& ~”表示當(dāng)日志寫(xiě)入到日志文件后,rsyslog停止處理這個(gè)信息,這個(gè)配置語(yǔ)法是用rainerscript腳本語(yǔ)言寫(xiě)的。
四:Haproxy參數(shù)優(yōu)化
????????maxconn????????最大的連接數(shù)????推薦使用10240
????????daemon???????? 守護(hù)進(jìn)程模式????可以使用非守護(hù)默認(rèn)
????????nbproc???????? 負(fù)載均衡的并發(fā)進(jìn)程數(shù)? ? ????建議與當(dāng)前服務(wù)器cpu核相等或2倍
????????retries????? ? 重試次數(shù)????????對(duì)集群節(jié)點(diǎn)的檢查,節(jié)點(diǎn)多并發(fā)量大,設(shè)置為2到3次
????????option http-server-close????主動(dòng)關(guān)閉http請(qǐng)求選項(xiàng)????生產(chǎn)環(huán)境中使用此選項(xiàng),避免由于timeout時(shí)間設(shè)置過(guò)長(zhǎng)導(dǎo)致http連接堆積
????????timeout http-keep-alive???? ?長(zhǎng)連接超時(shí)時(shí)間(10s)
????????timeout http-request???????? http請(qǐng)求超時(shí)時(shí)間(5~10s)????????增加http連接釋放的速度
????????timeout client????????????客戶(hù)端超時(shí)時(shí)間
????????????????????????
????????????
轉(zhuǎn)載于:https://blog.51cto.com/tanhong/1886909
總結(jié)
以上是生活随笔為你收集整理的haproxy搭建web群集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vs2015提示中文
- 下一篇: BASH 中的字符串处理