欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx結(jié)合keepalived實(shí)現(xiàn)雙機(jī)熱備方案

 更新時(shí)間:2024年05月12日 09:55:30   作者:鍵盤(pán)敲爛~~~  
Nginx難免遇見(jiàn)故障,可以使用使用keepalived來(lái)實(shí)現(xiàn)Nginx的高可用,本文主要介紹了Nginx結(jié)合keepalived實(shí)現(xiàn)雙機(jī)熱備方案,具有一定的參考價(jià)值,感興趣的可以了解一下

前言

在生產(chǎn)環(huán)境上很多時(shí)候是以 Nginx 做反向代理對(duì)外提供服務(wù),但是一天Nginx難免遇見(jiàn)故障,如:服務(wù)器宕機(jī)。當(dāng) Nginx 宕機(jī)那么 所有對(duì)外提供的接口都將導(dǎo)致無(wú)法訪問(wèn)。雖然我們無(wú)法保證服務(wù)器百分之百可用,但是也得想辦法避免這種悲劇,今天我們使用 keepalived 來(lái)實(shí)現(xiàn) Nginx 的高可用。

一、雙機(jī)熱備方案是什么?

這種方案是國(guó)內(nèi)企業(yè)中最為普遍的一種高可用方案,雙機(jī)熱備其實(shí) 就是指一臺(tái)服務(wù)器在提供服務(wù),另一臺(tái)為某服務(wù)的備用狀態(tài),當(dāng)一 臺(tái)服務(wù)器不可用另外一臺(tái)就會(huì)頂替上去。 本文我們通過(guò)keepalived來(lái)實(shí)現(xiàn)雙機(jī)熱備。keepalived是基于VRRP協(xié)議實(shí)現(xiàn)的保證集群高可用的一個(gè)服務(wù)軟 件,主要功能是實(shí)現(xiàn)真機(jī)的故障隔離和負(fù)載均衡器間的失敗切換, 防止單點(diǎn)故障。

二、使用步驟

1.環(huán)境準(zhǔn)備

準(zhǔn)備兩臺(tái)Nginx主機(jī),主Nginx的ip為192.168.66.100,備N(xiāo)ginx的服務(wù)器ip為192.168.66.101.還有一個(gè)Lvs虛擬VIP(這個(gè)不需要特別準(zhǔn)備,在配置文件寫(xiě)上就可,但主備N(xiāo)ginx服務(wù)器需要特別準(zhǔn)備),Lvs虛擬Vip為192.168.66.99.

2.具體操作

在兩臺(tái)虛擬機(jī)上分別執(zhí)行以下命令,安裝keepalived

yum install -y keepalived

現(xiàn)在對(duì)主Nginx進(jìn)行操作,修改keepalived.conf文件,直接把文件中原有的內(nèi)容刪除,粘貼并修改以下內(nèi)容。其中主備N(xiāo)ginx的virtual_router_id必須一樣,可以直接用代碼里的,不用修改,mcast_src_ip必須為Nginx宿主機(jī)的ip地址(如主Nginx的為192.168.66.100),virtual_ipaddress為L(zhǎng)vs虛擬Vip192.168.66.99

! Configuration File for keepalived


vrrp_script chk_nginx {
   script "/etc/keepalived/nginx_check.sh" #運(yùn)行腳本,腳本內(nèi)容下面有,就是起到一個(gè)nginx宕機(jī)以后,自動(dòng)開(kāi)啟服務(wù)
   interval 2 #檢測(cè)時(shí)間間隔
   weight -20 #如果條件成立的話,則權(quán)重 -20
}
# 定義虛擬路由,VI_1 為虛擬路由的標(biāo)示符,自己定義名稱
vrrp_instance VI_1 {
   state MASTER #來(lái)決定主從
   interface ens33 # 綁定虛擬 IP 的網(wǎng)絡(luò)接口,根據(jù)自己的機(jī)器填寫(xiě)
   virtual_router_id 121 # 虛擬路由的 ID 號(hào), 兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣
   mcast_src_ip 192.168.66.100 #填寫(xiě)本機(jī)ip
   priority 100 # 節(jié)點(diǎn)優(yōu)先級(jí),主要比從節(jié)點(diǎn)優(yōu)先級(jí)高
   nopreempt # 優(yōu)先級(jí)高的設(shè)置 nopreempt 解決異常恢復(fù)后再次搶占的問(wèn)題
   advert_int 1 # 組播信息發(fā)送間隔,兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣,默認(rèn) 1s
   authentication {
     auth_type PASS
     auth_pass 1111
   }
   # 將 track_script 塊加入 instance 配置塊
   track_script {
     chk_nginx #執(zhí)行 Nginx 監(jiān)控的服務(wù)
   }


   virtual_ipaddress {
     192.168.212.110 # 虛擬ip,也就是解決寫(xiě)死程序的ip怎么能切換的ip,也可擴(kuò)展,用途廣泛??膳渲枚鄠€(gè)。
   }
}

現(xiàn)在對(duì)從Nginx進(jìn)行操作,修改keepalived.conf文件,直接把文件中原有的內(nèi)容刪除,粘貼并修改以下內(nèi)容。其中主備N(xiāo)ginx的virtual_router_id必須一樣,可以直接用代碼里的,不用修改,mcast_src_ip必須為Nginx宿主機(jī)的ip地址(如主Nginx的為192.168.66.101),virtual_ipaddress為L(zhǎng)vs虛擬Vip192.168.66.99

! Configuration File for keepalived


vrrp_script chk_nginx {
   script "/etc/keepalived/nginx_check.sh" #運(yùn)行腳本,腳本內(nèi)容下面有,就是起到一個(gè)nginx宕機(jī)以后,自動(dòng)開(kāi)啟服務(wù)
   interval 2 #檢測(cè)時(shí)間間隔
   weight -20 #如果條件成立的話,則權(quán)重 -20
}
# 定義虛擬路由,VI_1 為虛擬路由的標(biāo)示符,自己定義名稱
vrrp_instance VI_1 {
   state BACKUP #來(lái)決定主從
   interface ens33 # 綁定虛擬 IP 的網(wǎng)絡(luò)接口,根據(jù)自己的機(jī)器填寫(xiě)
   virtual_router_id 121 # 虛擬路由的 ID 號(hào), 兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣
   mcast_src_ip 192.168.66.100 #填寫(xiě)本機(jī)ip
   priority 100 # 節(jié)點(diǎn)優(yōu)先級(jí),主要比從節(jié)點(diǎn)優(yōu)先級(jí)高
   nopreempt # 優(yōu)先級(jí)高的設(shè)置 nopreempt 解決異常恢復(fù)后再次搶占的問(wèn)題
   advert_int 1 # 組播信息發(fā)送間隔,兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣,默認(rèn) 1s
   authentication {
     auth_type PASS
     auth_pass 1111
   }
   # 將 track_script 塊加入 instance 配置塊
   track_script {
     chk_nginx #執(zhí)行 Nginx 監(jiān)控的服務(wù)
   }


   virtual_ipaddress {
     192.168.66.99 # 虛擬ip,也就是解決寫(xiě)死程序的ip怎么能切換的ip,也可擴(kuò)展,用途廣泛??膳渲枚鄠€(gè)。
   }
}

Nginx+keepalived實(shí)現(xiàn)高可用
寫(xiě)入nginx_check.sh腳本 /etc/keepalived/nginx_check.sh.輸入命令

vim /etc/keepalived/nginx_check.sh
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
   /usr/local/nginx/sbin/nginx
   sleep 2
   if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
     killall keepalived
   fi
fi

cd /etc/keepalived
chmod 777 nginx_check.sh
  • 運(yùn)行keepalived和Nginx
    這里給出運(yùn)行和停止keepalived的命令,Nginx大家自行運(yùn)行
service keepalived start #啟動(dòng)keepalived
service keepalived stop #停止keepalived

如果在啟動(dòng)keepalived的時(shí)候報(bào)錯(cuò):

當(dāng)你在瀏覽器輸入192.168.66.99的時(shí)候,打開(kāi)的是nginx的頁(yè)面或者服務(wù),就說(shuō)明雙機(jī)熱備就成功了

總結(jié)

到此這篇關(guān)于Nginx結(jié)合keepalived實(shí)現(xiàn)雙機(jī)熱備方案的文章就介紹到這了,更多相關(guān)Nginx keepalived雙機(jī)熱備內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論