溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣在Haproxy中搭建Web群集?

發(fā)布時(shí)間:2020-06-01 14:33:28 來源:億速云 閱讀:53245 作者:鴿子 欄目:云計(jì)算

HAProxy是一個(gè)使用C語(yǔ)言編寫的自由及開放源代碼軟件[1],其提供高可用性、負(fù)載均衡,以及基于TCP和HTTP的應(yīng)用程序代理。
HAProxy特別適用于那些負(fù)載特大的web站點(diǎn),這些站點(diǎn)通常又需要會(huì)話保持或七層處理。HAProxy運(yùn)行在當(dāng)前的硬件上,完全可以支持?jǐn)?shù)以萬(wàn)計(jì)的并發(fā)連接。并且它的運(yùn)行模式使得它可以很簡(jiǎn)單安全的整合進(jìn)您當(dāng)前的架構(gòu)中, 同時(shí)可以保護(hù)你的web服務(wù)器不被暴露到網(wǎng)絡(luò)上。

Haproxy 支持多種調(diào)度算法,最常用的有三種:

(1)RR:
RR 算法是最簡(jiǎn)單最常用的一種算法,即輪詢調(diào)度;

怎樣在Haproxy中搭建Web群集?

(2)LC:
LC 算法即最小連接數(shù)算法,根據(jù)后端的節(jié)點(diǎn)連接數(shù)大小動(dòng)態(tài)分配前端請(qǐng)求;

怎樣在Haproxy中搭建Web群集?

(3)SH:
SH 即基于來源訪問調(diào)度算法,次算法用于一些有 Session 會(huì)話記錄在服務(wù)器端的場(chǎng)景,可以基于來源的 IP、Cookie 等做集群調(diào)度。

怎樣在Haproxy中搭建Web群集?

實(shí)驗(yàn)示例:

(1)環(huán)境準(zhǔn)備:

兩臺(tái) Nginx 服務(wù)器,一臺(tái) Haproxy調(diào)度服務(wù)器,一臺(tái)window作為測(cè)試用;

在兩臺(tái) Nginx服務(wù)器寫兩個(gè)測(cè)試網(wǎng)頁(yè);

所有主機(jī)網(wǎng)卡都設(shè)置成僅主機(jī)模式,修改好網(wǎng)卡信息;

客戶端可以通過訪問調(diào)度服務(wù)器,訪問到兩臺(tái)節(jié)點(diǎn)服務(wù)器,不需要訪問真實(shí)服務(wù)器地址。

角色                                              IP地址

Haproxy                             192.168.100.100

Nginx 01                                192.168.100.201

Nginx 02                                192.168.100.202

window10(作為測(cè)試用)   192.168.100.50

怎樣在Haproxy中搭建Web群集?

第一步:搭建兩臺(tái) Nginx 服務(wù)器

這邊具體細(xì)節(jié)不再寫了,可以看之前的博客,有詳細(xì)寫搭建過程和細(xì)節(jié)。
搭建好 Nginx服務(wù)之后,在 Nginx主頁(yè) html 中添加一個(gè)測(cè)試主頁(yè),便于驗(yàn)證實(shí)驗(yàn)結(jié)果:
第一臺(tái):

怎樣在Haproxy中搭建Web群集?

怎樣在Haproxy中搭建Web群集?

第二臺(tái):

怎樣在Haproxy中搭建Web群集?

怎樣在Haproxy中搭建Web群集?

第二步:搭建 Haproxy

(1)安裝編譯工具:
yum install bzip2-devel pcre-devel gcc gcc-c++ make -y
(2)可以通過遠(yuǎn)程掛載將 haproxy壓縮包掛載到本地,再解壓縮:
 tar zxvf haproxy-1.5.19.tar.gz -C /opt/
 //解壓到/opt目錄下
(3)編譯:
make TARGET=linux3100
注:這個(gè)版本號(hào),可以使用 uname -a 命令來查看版本號(hào)

怎樣在Haproxy中搭建Web群集?

make install
(4)創(chuàng)建文件,進(jìn)行備份修改:
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/

vim /etc/haproxy/haproxy.cfg

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
        uid 99
        gid 99
        daemon
        #debug
        #quiet

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen webcluster 0.0.0.0:80
       option httpchk GET /test.html
       balance roundrobin
       server inst1 192.168.100.201:80 check inter 2000 fall 3
       server inst2 192.168.100.202:80 check inter 2000 fall 3
(5)啟動(dòng)腳本:
cp examples/haproxy.init /etc/init.d/haproxy
 //復(fù)制到init.d啟動(dòng)進(jìn)程中

chmod +x /etc/init.d/haproxy
 //添加執(zhí)行權(quán)限

chkconfig --add haproxy 
 //添加到service,便于識(shí)別

ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
 //創(chuàng)建軟連接
(6)開啟服務(wù):
service haproxy start

怎樣在Haproxy中搭建Web群集?

關(guān)閉防火墻等環(huán)境
[root@Haproxy haproxy-1.5.19]# systemctl stop firewalld.service 
[root@Haproxy haproxy-1.5.19]# setenforce 0

第三步:在 win7 上用瀏覽器訪問調(diào)度服務(wù)器(192.168.100.100/test.html)

怎樣在Haproxy中搭建Web群集?

怎樣在Haproxy中搭建Web群集?

第四步:優(yōu)化日志

對(duì)調(diào)度器的配置文件進(jìn)行優(yōu)化和修改,可以將正常的訪問信息和錯(cuò)誤的信息分別存放在不同的日志文件中,方便管理;Haproxy的日志默認(rèn)是輸出到系統(tǒng)的 syslog 中,在生產(chǎn)環(huán)境中一般單獨(dú)定義出來。
(1)修改主配置文件
vim/etc/haproxy/haproxy.cfg

修改global段:
log /dev/log    local0 info      //正常訪問的信息存放地
log /dev/log    local0 notice    //提示、警告等信息存放地

怎樣在Haproxy中搭建Web群集?

(2)重啟服務(wù)
service haproxy restart
(3)創(chuàng)建文件,并添加規(guī)則
[root@Haproxy haproxy]# touch /etc/rsyslog.d/haproxy.conf
[root@Haproxy haproxy]# cd /etc/rsyslog.d/

[root@Haproxy rsyslog.d]# vim haproxy.conf 

if ($programname == 'haproxy' and $syslogseverity-text == 'info')
then -/var/log/haproxy/haproxy-info.log
&~

if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~
(4)重啟日志服務(wù)
systemctl restart rsyslog.service
(5)查看日志文件: /var/log/haproxy/haproxy-info.log

怎樣在Haproxy中搭建Web群集?


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI