Centos7基于Haproxy搭建高可用Web群集-創(chuàng)新互聯(lián)

Haproxy是目前比較流行的一種群集調(diào)度工具,同類群集調(diào)度工具有很多,如LVS和Nginx。相比較而言,LVS性能最好,但是搭建相對復(fù)雜;Nginx的upstream模塊支持群集功能,但是相對群集節(jié)點健康檢查功能不強,性能沒有Haproxy好,更多的是應(yīng)用在企業(yè)內(nèi)網(wǎng)環(huán)境中。
搭建LVS群集可以參考博文:Centos 7搭建LVS+Keepalived高可用Web服務(wù)群集

十余年的婺城網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整婺城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“婺城網(wǎng)站設(shè)計”,“婺城網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

Nginx群集可以參考博文:基于centos 7安裝Tomcat服務(wù)及其負載均衡

關(guān)于Haproxy搭建Web群集原理概述參考博文:Haproxy搭建Web群集概述

一、部署基于Haproxy搭建高可用Nginx群集

部署環(huán)境如下:
Centos 7基于Haproxy搭建高可用Web群集

準備工作

1)調(diào)通網(wǎng)絡(luò),防火墻放行相關(guān)流量(我這里直接將防火墻關(guān)閉了);

2)準備系統(tǒng)映像,配置本地yum(自行配置);

3)下載haproxy源碼包,可以從我提供的網(wǎng)盤鏈接下載使用:https://pan.baidu.com/s/1I8JCUhejz0VSe8Q4lhzUpQ
提取碼:th9x

4)web網(wǎng)站使用apache、Nginx、Tomcat搭建都可以,只要可以訪問就行,我這里部署兩臺Nginx和一臺Apache,web網(wǎng)站搭建可以參考:
APache網(wǎng)站服務(wù)配置訪問控制和構(gòu)建虛擬主機

Centos 7部署Nginx網(wǎng)站服務(wù)

基于centos 7安裝Tomcat服務(wù)及其負載均衡

1、部署第一臺Nginx網(wǎng)站

關(guān)于Nginx詳細配置及說明可以參考:Centos 7部署Nginx網(wǎng)站服務(wù)

[root@centos01 ~]# yum -y install prce-devel zlib-devel      <!--安裝依賴軟件包-->
[root@centos01 ~]# useradd -M -s /sbin/nologin nginx      <!--創(chuàng)建管理Nginx賬戶-->
[root@centos01 ~]# umount /mnt/      <!--卸載操作系統(tǒng)光盤-->
[root@centos01 ~]# mount /dev/cdrom /mnt/       <!--切換Linux光盤-->
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@centos01 ~]# scp /mnt/nginx-1.6.0.tar.gz root@192.168.100.20:/root  
                            <!--復(fù)制Nginx包到第二臺Nginx服務(wù)器-->
The authenticity of host '192.168.100.20 (192.168.100.20)' can't be established.
ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.
ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.
Are you sure you want to continue connecting (yes/no)? yes   <!--輸入yes-->
Warning: Permanently added '192.168.100.20' (ECDSA) to the list of known hosts.
root@192.168.100.20's password:     <!--輸入密碼-->
nginx-1.6.0.tar.gz                                      100%  784KB  68.2MB/s   00:00
[root@centos01 ~]# scp /mnt/haproxy-1.4.24.tar.gz root@192.168.100.30:/root   
                        <!--復(fù)制haproxy軟件包到100.30服務(wù)器-->
The authenticity of host '192.168.100.30 (192.168.100.30)' can't be established.
ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.
ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.
Are you sure you want to continue connecting (yes/no)? yes    <!--輸入yes-->
Warning: Permanently added '192.168.100.30' (ECDSA) to the list of known hosts.
root@192.168.100.30's password:     <!--輸入密碼-->
haproxy-1.4.24.tar.gz                                                                               100%  817KB  31.1MB/s   00:00  00:00  
[root@centos01 ~]# tar zxvf /mnt/nginx-1.6.0.tar.gz -C /usr/src/   <!--解壓縮nginx包-->
[root@centos01 ~]# cd /usr/src/nginx-1.6.0/   <!--進入nginx目錄-->
[root@centos01 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx 
--group=nginx --with-http_stub_status_module    <!--配置nginx-->
[root@centos01 nginx-1.6.0]# make && make install   <!--編輯及安裝nginx-->
[root@centos01 ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/   <!--優(yōu)化執(zhí)行命令-->
[root@centos01 ~]# echo "192.168.100.10:nginx" > /usr/local/nginx/html/index.html  
                              <!--創(chuàng)建nginx網(wǎng)站主頁,寫入測試數(shù)據(jù)-->
[root@centos01 ~]# nginx    <!--啟動nginx服務(wù)-->
[root@centos01 ~]# netstat -anptu | grep nginx   <!--監(jiān)聽Nginx服務(wù)是否啟動-->
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3685/ngin: master

2、部署第二臺Nginx網(wǎng)站

[root@centos02 ~]# yum -y install pcre-devel zlib-devel   <!--安裝依賴軟件包-->
[root@centos02 ~]# ls     <!--查看Nginx包是否成功從第一臺Nginx網(wǎng)站復(fù)制成功-->
anaconda-ks.cfg  initial-setup-ks.cfg  nginx-1.6.0.tar.gz     
[root@centos02 ~]# tar zxvf nginx-1.6.0.tar.gz -C /usr/src/   <!--解壓縮nginx軟件包-->
[root@centos02 ~]# useradd -M -s /sbin/nologin nginx      <!--創(chuàng)建管理nginx賬戶-->
[root@centos02 ~]# cd /usr/src/nginx-1.6.0/        <!--進入Nginx目錄-->
[root@centos02 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx 
--group=nginx --with-http_stub_status_module    <!--配置nginx-->
[root@centos02 nginx-1.6.0]# make && make install      <!--編譯及安裝--> 
[root@centos02 ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/    <!--優(yōu)化執(zhí)行路徑-->
[root@centos02 ~]# echo "192.168.100.20:nginx" > /usr/local/nginx/html/index.html 
            <!--創(chuàng)建nginx網(wǎng)站主頁,寫入測試數(shù)據(jù)  -->
[root@centos02 ~]# nginx      <!--啟動nginx服務(wù)-->
[root@centos02 ~]# netstat -anptu | grep nginx       <!--監(jiān)聽Nginx服務(wù)是否啟動-->
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6059/ngin: master

3、配置客戶端

1)客戶端添加VM1網(wǎng)卡,配置和服務(wù)器同網(wǎng)段IP地址

Centos 7基于Haproxy搭建高可用Web群集

2)訪問第一臺nginx服務(wù)器

Centos 7基于Haproxy搭建高可用Web群集

3)訪問第二臺nginx服務(wù)器

Centos 7基于Haproxy搭建高可用Web群集

4、部署Haproxy服務(wù)器

 <!--安裝haproxy-->

[root@centos03 ~]# yum -y install pcre-devel bzip2-devel    <!--安裝依賴程序-->
[root@centos03 ~]# ls
anaconda-ks.cfg  haproxy-1.4.24.tar.gz  initial-setup-ks.cfg 
[root@centos03 ~]# tar zxvf haproxy-1.4.24.tar.gz -C /usr/src/  <!--解壓縮haproxy壓縮包-->
[root@centos03 ~]# cd /usr/src/haproxy-1.4.24/      <!---進入haproxy目錄->
[root@centos03 haproxy-1.4.24]# make TARGET=linux26<!--編譯haproxy支持64位系統(tǒng)-->
[root@centos03 haproxy-1.4.24]# make install      <!--安裝haproxy-->

<!--接下來開始生成haproxy配置文件-->

[root@centos03 ~]# mkdir /etc/haproxy      <!--創(chuàng)建保存haproxy配置文件目錄-->
[root@centos03 ~]# cp /usr/src/haproxy-1.4.24/examples/haproxy.cfg /etc/haproxy/ 
                    <!--生成配置文件-->
[root@centos03 ~]# cp /usr/src/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy 
                        <!--創(chuàng)建haproxy服務(wù)控制腳本-->
[root@centos03 ~]# chmod +x /etc/init.d/haproxy      <!--添加執(zhí)行權(quán)限-->
[root@centos03 ~]# chkconfig --add haproxy    <!--添加為系統(tǒng)服務(wù)-->
[root@centos03 ~]# chkconfig --level 35 haproxy on    <!--設(shè)置開機自動啟動-->
[root@centos03 ~]# cp /usr/src/haproxy-1.4.24/haproxy /usr/sbin/<!--優(yōu)化程序執(zhí)行命令-->
[root@centos03 ~]# mkdir -p /usr/share/haproxy        <!--創(chuàng)建服務(wù)運行的臨時目錄-->

       <!--接下來開始配置haproxy群集-->

[root@centos03 ~]# vim /etc/haproxy/haproxy.cfg    <!--修改haproxy主配置文件-->
# this config needs haproxy-1.1.28 or haproxy-1.2.1
        gid 99          <!--用戶gid-->
        daemon
        #debug
        #quiet

defaults
        log     global          <!--定義日志為global配置中的日志定義-->
        mode    http            <!--模式為http-->
        option  httplog         <!--采用http日志格式記錄日志-->
        option  dontlognull     
        retries 3  <!--檢查節(jié)點服務(wù)器失敗次數(shù),連續(xù)達到三次失敗,則認為節(jié)點不可用-->
        redispatch       <!--當(dāng)服務(wù)器負載很高時,自動結(jié)束當(dāng)前隊列處理比較久的連接-->
        maxconn 2000             <!--大連接數(shù)-->
        contimeout      10            <!--連接超時時間-->
        clitimeout      10              <!--客戶端超時時間-->
        srvtimeout      10            <!--服務(wù)器超時時間-->

listen  nginx 192.168.100.30:80         <!--定義一個nginx的應(yīng)用-->
        balance roundrobin             <!--負載均衡調(diào)度算法使用輪詢算法-->
        server  web01 192.168.100.10:80 check inter 2000 fall 3   <!--定義在線節(jié)點-->
        server  web02 192.168.100.20:80 check inter 2000 fall 3   <!--定義備份節(jié)點-->
[root@centos03 ~]# /etc/init.d/haproxy start       <!--啟動haproxy服務(wù)-->
Starting haproxy (via systemctl):                          [  確定  ]

至此Haproxy群集部署完成,現(xiàn)在可以使用客戶端訪問Haproxy服務(wù)器的IP地址,第一次訪問到的頁面是第一臺Nginx服務(wù)器,第二次訪問到的頁面會是第二臺Nginx服務(wù)器
Centos 7基于Haproxy搭建高可用Web群集

Centos 7基于Haproxy搭建高可用Web群集

5、部署DNS

我這里就直接配置了,關(guān)于DNS詳細配置及配置項解釋及DNS工作原理概述請參考博文:CentOS7簡單搭建DNS服務(wù)

[root@centos03 ~]# yum -y install bind bind-chroot bind-utils    <!--安裝依賴軟件-->
[root@centos03 ~]# echo "" > /etc/named.conf    <!--清空主配置文件-->
[root@centos03 ~]# vim /etc/named.conf     <!--編輯DNS主配置文件-->
options {
        listen-on       port    53      { 192.168.100.0/24; };
        directory       "/var/named";
};
zone    bdqn.com        IN      {
        type    master;
        file    "bdqn.com.zone";
};
[root@centos03 ~]# named-checkconf -z /etc/named.conf<!--檢查DNS主配置文件是否錯誤-->
[root@centos03 ~]# vim /var/named/bdqn.com.zone<!--編輯bdqn.com正向解析區(qū)域配置文件-->
$TTL    86400
@       SOA     bdqn.com.       root.bdqn.com.(
        2019112201
        1H
        15M
        1W
        1D
)
@       NS      centos03.bdqn.com.
centos03 A      192.168.100.30
www      A      192.168.100.30
[root@centos03 ~]# named-checkzone bdqn.com /var/named/bdqn.com.zone 
                         <!--檢查正向解析區(qū)域配置文件是否錯誤-->
zone bdqn.com/IN: loaded serial 2019112201
OK
[root@centos03 ~]# chmod +x /var/named/bdqn.com.zone
                        <!--正向解析區(qū)域配置文件添加執(zhí)行權(quán)限-->
[root@centos03 ~]# chown named:named /var/named/bdqn.com.zone 
                        <!--修改屬組屬組-->
[root@centos03 ~]# systemctl start named      <!--啟動服務(wù)-->
[root@centos03 ~]# systemctl enable named    <!--設(shè)置服務(wù)開機自動啟動-->

至此DNS已經(jīng)配置完成,客戶端添加DNS地址,打開瀏覽器使用域名訪問即可
Centos 7基于Haproxy搭建高可用Web群集

Centos 7基于Haproxy搭建高可用Web群集

Centos 7基于Haproxy搭建高可用Web群集

二、使用Haproxy搭建Apache網(wǎng)站群集

1、部署apache網(wǎng)站

關(guān)于Apache網(wǎng)站詳細配置及工作原理概述參考博文:CentOS 7.4搭建Apache網(wǎng)站服務(wù)

[root@centos04 ~]# tar zxvf /mnt/httpd-2.2.17.tar.gz -C /usr/src/ <!--解壓縮httpd壓縮包-->
[root@centos04 ~]# cd /usr/src/httpd-2.2.17/
[root@centos04 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so 
–enable-rewrite --enable-charset-lite --enable-cgi   
                    <!--配置apache-->
[root@centos04 httpd-2.2.17]# make && make install    <!--編輯及安裝-->
[root@centos04 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/    <!--優(yōu)化執(zhí)行路徑-->
[root@centos04 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd<!--創(chuàng)建apache服務(wù)-->
[root@centos04 ~]# chmod +x /etc/init.d/httpd  <!--添加執(zhí)行權(quán)限-->
[root@centos04 ~]# vim /etc/init.d/httpd     <!--修改apache服務(wù)-->
#!/bin/sh
#chkconfig 35 80 20
#description:apache server
[root@centos04 ~]# chkconfig --add httpd    <!--添加系統(tǒng)服務(wù)-->
[root@centos05 ~]# echo "192.168.100.40:apache" > /usr/local/httpd/htdocs/index.html
                    <!--創(chuàng)建網(wǎng)站主頁,寫入測試數(shù)據(jù)-->
[root@centos04 ~]# apachectl -t     <!--檢查apache服務(wù)配置文件是否錯誤-->
[root@centos04 ~]# systemctl start httpd    <!--啟動apache服務(wù)-->
[root@centos04 ~]# systemctl enable httpd    <!--設(shè)置開機自動啟動-->
[root@centos04 ~]# netstat -anptu | grep httpd    <!--監(jiān)聽Apache服務(wù)是否啟動-->
tcp6       0      0 :::80                   :::*                    LISTEN      53801/httpd    
[root@centos04 ~]# systemctl is-enabled httpd.service
                 <!--查看apache服務(wù)開機自動啟動狀態(tài)-->
enabled

2、部署Haproxy服務(wù)

listen  nginx 192.168.100.30:80
        balance roundrobin
                server  web01 192.168.100.10:80 check inter 2000 fall 3   <!--定義在線節(jié)點-->
        server  web02 192.168.100.20:80 check inter 2000 fall 3   <!--定義備份節(jié)點-->
        server  apache01 192.168.100.40:80 check inter 2000 fall 3 weight 1  
                                       <!--定義備份節(jié)點(Haproxy主配置文件中添加此行即可)-->
[root@centos03 ~]# /etc/init.d/haproxy restart        <!--重啟動haproxy服務(wù)-->
Restarting haproxy (via systemctl):                        [  確定  ]

至此基于Apache網(wǎng)站群集已經(jīng)部署完成,現(xiàn)在可以使用客戶端訪問
Centos 7基于Haproxy搭建高可用Web群集

Centos 7基于Haproxy搭建高可用Web群集

Centos 7基于Haproxy搭建高可用Web群集

[root@centos03 ~]# tail -f /var/log/haproxy/haproxy-info.log        
<!--查看haproxy訪問日志-->

—————— 本文至此結(jié)束,感謝閱讀 ——————

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享標題:Centos7基于Haproxy搭建高可用Web群集-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article34/dsjdpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、Google、網(wǎng)站設(shè)計公司、網(wǎng)站收錄標簽優(yōu)化、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化