1. 程式人生 > >nginx+keepalived簡單雙機主從熱備

nginx+keepalived簡單雙機主從熱備

雙機主從熱備概述

可以兩臺機子互為熱備,平時各自負責各自的服務。在做上線更新的時候,關閉一臺伺服器的tomcat後,nginx自動把流量切換到另外一臺服務的後備機子上,從而實現無痛更新,保持服務的持續性,提高服務的可靠性,從而保證伺服器7*24小時執行。

 

首先使用keepalived虛擬VIP

刪除掉原來的  rm -rf  /etc/keepalived/keepalived.conf

vi /etc/keepalived/keepalived.conf   

新增:

vrrp_script chk_nginx {

script "/etc/keepalived/nginx_check.sh" #執行指令碼,指令碼內容下面有,就是起到一個nginx宕機以後,自動開啟服務
interval 2 #檢測時間間隔
weight -20 #如果條件成立的話,則權重 -20
}
# 定義虛擬路由,VI_1 為虛擬路由的標示符,自己定義名稱
vrrp_instance VI_1 {
state MASTER #來決定主從 MASTER為主 BACKUP為從
interface eth0 # 繫結虛擬 IP 的網路介面,根據自己的機器填寫 ip a指令檢視 (如下圖)
virtual_router_id 121 # 虛擬路由的 ID 號, 兩個節點設定必須一樣 121自己隨便定義 是個數字就OK

mcast_src_ip 192.168.91.7 #填寫本機ip

priority 100 # 節點優先順序,主要比從節點優先順序高

nopreempt # 優先順序高的設定 nopreempt 解決異常恢復後再次搶佔的問題
advert_int 1 # 組播資訊傳送間隔,兩個節點設定必須一樣,預設 1s
authentication { ##賬號密碼
auth_type PASS
auth_pass 1111
}
# 將 track_script 塊加入 instance 配置塊
track_script {
chk_nginx #執行 Nginx 監控的服務
}

virtual_ipaddress {
192.168.91.110 # 虛擬ip,也就是解決寫死程式的ip怎麼能切換的ip,也可擴充套件,用途廣泛。可配置多個。
}
}

 

Nginx+keepalived簡單雙機主從熱備

每個服務虛擬安裝keepalived 虛擬一個VIP ,配置主從關係,當主掛了,直接走備機。

Keepalived虛擬VIP 地址 192.168.91.666

A 伺服器 192.168.91.5  從

B 伺服器 192.168.91.7  主

 

Nginx安裝: https://www.cnblogs.com/toov5/p/9902692.html

 

安裝成功後修改主伺服器的Nginx html的index.html 

’訪問:  真實實體地址訪問結果

 

 

  啟動  service keepalived start

 啟動日誌   tail -f /var/log/messages

 

成功!

或者 ip a

 

訪問虛擬ip

同理設定備機:  修改一個配置 state BACKUP  一個本地ip即可 

vrrp_script chk_nginx {

script "/etc/keepalived/nginx_check.sh" #執行指令碼,指令碼內容下面有,就是起到一個nginx宕機以後,自動開啟服務
interval 2 #檢測時間間隔
weight -20 #如果條件成立的話,則權重 -20
}
# 定義虛擬路由,VI_1 為虛擬路由的標示符,自己定義名稱
vrrp_instance VI_1 {
state BACKUP #來決定主從 MASTER為主 BACKUP為從

interface eth0 # 繫結虛擬 IP 的網路介面,根據自己的機器填寫 ip a指令檢視 (如下圖)
virtual_router_id 121 # 虛擬路由的 ID 號, 兩個節點設定必須一樣 121自己隨便定義 是個數字就OK

mcast_src_ip 192.168.91.5  #填寫本機ip

priority 100 # 節點優先順序,主要比從節點優先順序高

nopreempt # 優先順序高的設定 nopreempt 解決異常恢復後再次搶佔的問題
advert_int 1 # 組播資訊傳送間隔,兩個節點設定必須一樣,預設 1s
authentication { ##賬號密碼
auth_type PASS
auth_pass 1111
}
# 將 track_script 塊加入 instance 配置塊
track_script {
chk_nginx #執行 Nginx 監控的服務
}

virtual_ipaddress {
192.168.91.110 # 虛擬ip,也就是解決寫死程式的ip怎麼能切換的ip,也可擴充套件,用途廣泛。可配置多個。
}
}

 

如果實現一主一備時候 虛擬VIP 只能在一臺伺服器存放 

如果實現多主 多備情況  虛擬VIP 可以多臺存放

 

一主一備 虛擬ip一樣

但是 VIP是在主機上的 當主機宕機了之後 會在備機

啟動後:

虛擬vip只在主上

啟動 ngxin  keeplived 服務

訪問

 

 一直是主,重新整理

 

停止主 service keepalived stop 訪問

 

虛擬ip 跑這裡了 備機

 

啟動主