中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

keepalived+Haproxy搭建高可用Web群集

發布時間:2020-05-30 07:31:13 來源:網絡 閱讀:3279 作者:warrent 欄目:建站服務器

Haproxy是目前比較流行的一種群集調度工具,同類群集調度工具有很多,如LVS和Nginx。相比較而言,LVS性能最好,但是搭建相對復雜,搭建LVS群集可以參考博文:搭建:LVS+Keepalived高可用Web服務群集環境;Nginx的upstream模塊支持群集功能,但是相對群集節點健康檢查功能不強,性能沒有Haproxy好,更多的是應用在企業內網環境中。Nginx群集可以參考博文:centos 7部署Tomcat及其負載均衡配置詳解。

上述幾個web群集調度器屬于軟件類型的,還有很多硬件群集調度器,硬件一般使用比較多的是F5,也有很多公司使用國產的一些產品,如梭子魚、綠盟等。硬件群集調度器有一些比較顯而易見的缺點,如果說出問題了,還要需要廠家的技術支持,廠家維護時還需要我們的錯誤日志,在出現問題到問題解決這段時間,可能一個月的時間都過去了。若是使用軟件型的群集調度器,那么只要我們運維人員技術過硬,發現問題到解決問題,很快的。

關于Haproxy常用的調度算法、配置文件及參數優化可以參考博文:centos 7 之haproxy的配置文件詳解及haproxy參數調優

現在以下面的環境,進行搭建一個keepalived的高可用web群集(關于高可用存儲服務器,這里就省略了,將在以后的文章寫出如何搭建高可用的存儲服務器),環境如下:

keepalived+Haproxy搭建高可用Web群集

一、準備工作:

1、調通網絡,防火墻放行相關流量(我這里直接將防火墻關閉了);

2、準備系統映像,配置本地yum(自行配置)。

3、下載haproxy源碼包,可以從我提供的網盤鏈接下載使用:haproxy下載鏈接
提取碼:54iv 。

4、web網站使用apache、Nginx、Tomcat搭建都可,只要可以訪問就行,這里自行搭建吧,我為了測試方便,直接使用系統映像自帶的httpd服務,web網站搭建可以參考:基于Linux搭建Apache網站服務配置詳解;基于centos 7搭建Nginx網站服務器

5、我這里使用的全部是centos 7系統,注意,該環境不是生產環境,若是在生產環境中,肯定還有后端存儲來存放網頁文件,web服務器讀取存儲服務器上的網頁返回給客戶端。這樣才可保證網頁內容的一致性。

二、開始搭建:

1、配置keepalived+haproxy主服務器:

[root@haproxy1 ~]# yum -y install keepalived pcre-devel bzip2-devel           
#掛載系統映像,安裝相關軟件包
[root@haproxy1 media]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src/     #解包
[root@haproxy1 media]# cd /usr/src/haproxy-1.5.19/       #切換至源碼包目錄
[root@haproxy1 haproxy-1.5.19]# make TARGET=linux26 && make install      
#編譯安裝,TARGET配置項表示64位系統。haproxy無須./configure配置。
[root@haproxy1 haproxy-1.5.19]# mkdir /etc/haproxy             #創建配置文件目錄
[root@haproxy1 haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/      
#將源碼包自帶的配置文件目錄復制過來。
[root@haproxy1 haproxy-1.5.19]# cd
[root@haproxy1 ~]# vim /etc/haproxy/haproxy.cfg         
#編輯主配置文件,根據當前環境,將主配置文件修改如下:
# this config needs haproxy-1.1.28 or haproxy-1.2.1

global
        log /dev/log    local0 info
        log /dev/log    local0 notice
        #log loghost    local0 info
        maxconn 4096
        #chroot /usr/share/haproxy             #將該行注釋掉
        uid 99
        gid 99
        daemon
        #debug
        #quiet

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

listen  webcluster 0.0.0.0:80    #webcluster為群集名稱,可自定義,修改后面的端口號。
        option  httpchk /index.html
        balance roundrobin        #表示采用輪詢算法。
        server  inst1 192.168.1.3:80 check inter 2000 fall 3             #web節點1
         server  inst2 192.168.1.4:80 check inter 2000 fall 3  #web節點2,注意相關端口號
#注意,在配置文件下,有很多listen配置項,找到和我們需要的差不多的listen項復制到
#defaults配置項下,然后將后面所有的配置項刪除,若不刪除,可能服務啟動時會報錯。
[root@haproxy1 ~]# cd /usr/src/haproxy-1.5.19/examples/           #切換至指定目錄
[root@haproxy1 examples]# cp haproxy.init /etc/init.d/haproxy    #復制服務控制腳本
[root@haproxy1 examples]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
#創建軟連接
[root@haproxy1 examples]# chmod +x /etc/init.d/haproxy          #賦予文件執行權限
[root@haproxy1 examples]# chkconfig --add /etc/init.d/haproxy       #添加為系統服務
[root@haproxy1 examples]# systemctl restart haproxy              #啟動haproxy服務
[root@haproxy1 examples]# netstat -anpt | grep 80                #查看是否在監聽
#haproxy服務默認監聽80端口
tcp        0      0 0.0.0.0:80    0.0.0.0:*      LISTEN  12640/haproxy   
[root@haproxy1 ~]# vim /etc/rsyslog.d/haproxy.conf              #配置haproxy日志,寫入下面內容

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
& ~ 
#寫入后,保存退出即可。
[root@haproxy1 ~]# systemctl restart rsyslog                  #重啟日志服務
#以下部分開始配置keepalived,haproxy已經配置完成了。
#現在client可以訪問該服務器IP地址,看看是否可以刷到兩個web服務器提供的網頁。
#需要多刷新幾次,web服務器準備不一樣的網頁才可看到效果。
[root@haproxy1 ~]# vim /etc/keepalived/keepalived.conf    #編輯keepalived配置文件
#只改動以下標注的配置項即可
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL1             #定義服務器名稱,不可與其他服務器名稱沖突
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33            #修改承載漂移IP地址的物理網卡
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {
    192.168.1.100              #指定漂移IP地址
    }
}   
#配置項至此保存退出就可以了,將后面的所有配置項刪除,以免影響服務啟動。
[root@haproxy1 ~]# systemctl restart keepalived               #重啟keepalived服務。

2、配置keepalived+haproxy備份服務器:

[root@haproxy2 ~]# systemctl stop firewalld          #關閉防火墻
[root@haproxy2 ~]# yum -y install keepalived pcre-devel bzip2-devel
#掛載系統映像,安裝相關軟件包
[root@haproxy2 media]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src            #解包
[root@haproxy2 media]# cd /usr/src/haproxy-1.5.19/
[root@haproxy2 haproxy-1.5.19]# make TARGET=linux26 && make install    #安裝
[root@haproxy2 haproxy-1.5.19]# cd
[root@haproxy2 ~]# mkdir /etc/haproxy            #創建配置文件目錄
[root@haproxy2 ~]# scp root@192.168.1.1:/etc/haproxy/haproxy.cfg /etc/haproxy/
#直接將主服務器的haproxy配置文件復制過來
root@192.168.1.1 s password:          #輸入主服務器的用戶密碼
haproxy.cfg                                 100%  566   460.5KB/s   00:00    
[root@haproxy2 ~]# scp root@192.168.1.1:/etc/init.d/haproxy /etc/init.d/haproxy
root@192.168.1.1s password: 
haproxy                                     100% 2553     2.1MB/s   00:00    
[root@haproxy2 ~]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy        #創建鏈接文件
[root@haproxy2 ~]# chkconfig --add /etc/init.d/haproxy            #添加為系統服務
[root@haproxy2 ~]# systemctl start haproxy              #啟動服務
[root@haproxy1 examples]# netstat -anpt | grep 80                #查看是否在監聽
#haproxy服務默認監聽80端口
tcp        0      0 0.0.0.0:80    0.0.0.0:*      LISTEN  12640/haproxy   
[root@haproxy1 ~]# vim /etc/rsyslog.d/haproxy.conf              #配置haproxy日志,寫入下面內容

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
& ~ 
#寫完保存退出即可。
[root@haproxy2 ~]# systemctl restart rsyslog                  #重啟日志服務
[root@haproxy2 ~]# scp root@192.168.1.1:/etc/keepalived/keepalived.conf /etc/keepalived/
#將主服務器的keepalived配置文件復制過來
root@192.168.1.1s password:                  #輸入主服務器的用戶密碼
keepalived.conf                             100%  630   622.3KB/s   00:00    
[root@haproxy2 ~]# vim /etc/keepalived/keepalived.conf 
#修改下面三個配置項:
                     ................
router_id LVS_DEVEL2       #將服務器名稱改一下,別和主服務器沖突
                     ..............
state BACKUP            #將狀態改為BACKUP
                     ...............
priority 90            #修改一下優先級,要比主服務器優先級低

#改完以上三行,保存退出即可。
[root@haproxy2 ~]# systemctl start keepalived           #啟動keepalived服務

至此,keepalived+haproxy就配置完成了,可以使用client進行訪問測試,模擬主服務器宕機等問題,測試高可用。

[root@haproxy1 ~]# tail -f /var/log/haproxy/haproxy-info.log        #查看haproxy訪問日志
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东丽区| 汕头市| 株洲县| 太和县| 谢通门县| 罗平县| 南郑县| 晋宁县| 和硕县| 洪江市| 景德镇市| 浦城县| 祁连县| 达州市| 建平县| 措勤县| 三明市| 剑川县| 如皋市| 镇雄县| 温州市| 西安市| 鄂伦春自治旗| 罗山县| 师宗县| 四子王旗| 天台县| 汨罗市| 扎囊县| 万山特区| 泾阳县| 青铜峡市| 喀喇| 湟中县| 新乡市| 宁明县| 永定县| 神木县| 呼伦贝尔市| 大埔区| 梓潼县|