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