使用Keepalived實現Nginx的雙機主備高可用


1、概述

前面我們聊過使用 Nginx 為 后端Tomcat 做負載均衡、高可用,但是這時Nginx又成了單點,如果Nginx不幸掛掉,整個網站便無法訪問。

此時我們就會用到另一個軟件 —— Keepalived。

Keepalived 是一個用 C 編寫的路由軟件,Keepalived 會生成一個虛擬IP,此虛擬IP與多台真實的服務器的IP綁定,當用戶發來請求到虛擬IP時,請求先路由到主服務器,當主服務器宕機后,請求會路由到備用服務器,以達到高可用的目的。

理論上兩台或多台Nginx服務器的硬件配置應該一致,這樣路由改變時,性能不會有太大的差別。

下面我們用一個例子,來實際操作一下。

2、場景說明

在兩台服務器上,安裝Nginx,並啟動。

在兩台服務器上安裝Keepalived,進行配置,為Nginx做負載均衡,實現雙機主備高可用。

A服務器配置為主機,B服務器配置為備機。

虛擬IP:192.168.1.88

A服務器IP(主):192.168.1.144

B服務器IP(備):192.168.1.22

 

3、安裝Keepalived

在兩台服務器上都需要安裝Keepalived。

1)下載Keepalived

可以到Keepalived官網(https://www.keepalived.org)下載

 

 

 圖片來源於官網

 

 

 圖片來源於官網

 

2)將Keepalived壓縮包,拷貝到兩台服務器的 /home 目錄下

3)解壓Keepalived壓縮包

在Linux系統執行  # tar -zxvf keepalived-2.2.4.tar.gz   命令進行解壓。

4)安裝依賴包

# yum -y install libnl libnl-devel

# yum install -y openssl openssl-devel

5)進入解壓后的Keepalived目錄

6)執行配置命令

# ./configure --prefix=/usr/local/keepalived --sysconf=/etc

7)執行編譯並安裝命令

# make && make install

8)安裝成功后,在 /etc/keepalived 目錄下,會看到 keepalived.conf 文件。

 

4、配置 keepalived.conf 文件

進入 /etc/keepalived 目錄下,修改 keepalived.conf 文件。

A服務器配置如下:

! Configuration File for keepalived

global_defs {
   
   # 全局唯一的主機標識
   router_id server_a
   
}

vrrp_instance VI_1 {

    # 標識是主節點還是備用節點,值為 MASTER 或 BACKUP
    state MASTER
    # 綁定的網卡
    interface ens33
    # 虛擬路由id,保證主備節點是一致的
    virtual_router_id 51
    # 權重
    priority 100
    # 同步檢查時間,間隔默認1秒
    advert_int 1
    # 認證授權的密碼,所有主備需要一樣
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虛擬IP
    virtual_ipaddress {
        192.168.1.88
    }
}

 

B服務器配置如下:

! Configuration File for keepalived

global_defs {
   
   router_id server_b
   
}

vrrp_instance VI_1 {
    
    # 設置為備機
    state BACKUP
    interface ens33
    virtual_router_id 51
    # 權重設置的要比主機低
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虛擬IP需要主備設置成一樣
    virtual_ipaddress {
        192.168.1.88
    }
}

 

 

5、啟動Keepalived

1)進入 /usr/local/keepalived/sbin 目錄

2)輸入命令 # ./keepalived  即可。

 

 此時,查看網卡,會發現主機的IP地址多了 192.168.1.88

 

 

6、停止A服務器,看虛擬IP是否路由到B服務器

經試驗可知,A服務器關閉后,虛擬IP便路由到了B服務器。

 

 

7、綜述

好了,至此,Keepalived的雙機主備機制已經實現了。后面我們還會介紹Keepalived雙主熱備的配置方式。

希望大家多多留言交流,共同進步。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM