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雙主熱備的配置方式。
希望大家多多留言交流,共同進步。