Keepalived+Nginx高可用案例(抢占式与非抢占式)
生活随笔
收集整理的這篇文章主要介紹了
Keepalived+Nginx高可用案例(抢占式与非抢占式)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(1)下載安裝Keepalived源碼包
Keepalived官網(wǎng)源碼包下載地址
在服務(wù)器上解壓
tar -xf keepalived-2.2.8.tar.gz
安裝相關(guān)前置依賴
yum -y install gcc gcc-c++
使用configure工具進(jìn)行安裝
./configure --sysconfdir=/etc --prefix=/usr/local/keepalived --sbindir=/usr/sbin --bindir=/usr/bin
--sysconfdir=DIR #指定配置文件位置
--prefix=DIR #指定安裝路徑
--sbindir=DIR 指定命令位置,后面不需再配置環(huán)境變量
使用make make install進(jìn)行安裝
make && make install
(2)配置Keepalived在業(yè)務(wù)中的參數(shù)
本次操作為Keepalived單VIP搶占式配置,即兩個虛擬機(jī)只有一臺綁定VIP對外提供服務(wù),且在一臺主機(jī)失能時VIP將漂移到備機(jī)上接收流量,當(dāng)主機(jī)恢復(fù)時VIP將再次切換
主機(jī)配置
global_defs {
router_id logincas1 ### router_id為全局定義當(dāng)前節(jié)點的id,一般為唯一
enable_script_security
script_user root ##定義執(zhí)行腳本的角色
vrrp_version 2
}
## 定義腳本
vrrp_script chk_nginx {
script "/usr/local/nginx-check.sh" ##腳本路徑
interval 2 ##檢測間隔
timeout 4 ##失敗間隔,失敗兩次通信則失敗
rise 4 ##成功四次則成功
fall 2 ##失敗兩次則切換
weight -50 ##腳本檢測失敗則扣減權(quán)重
}
vrrp_instance VI_1 { ##模塊配置
version 2
state MASTER ##搶占式的情況下主機(jī)需設(shè)置為MASTER,備機(jī)為BACKUP
interface eth0 ##指定VIP流量的網(wǎng)卡
virtual_router_id 51 ##虛擬路由ID
priority 100 ##優(yōu)先級,備機(jī)應(yīng)比主機(jī)低一些
advert_int 1 ##VRRP心跳包發(fā)送間隔
authentication { ##權(quán)限認(rèn)證
auth_type PASS ##類型:密碼
auth_pass 2222
}
virtual_ipaddress {
172.29.184.220/24 ##VIP配置
}
track_script { ##腳本定義
chk_nginx
}
}
接下來需要補(bǔ)充完善 nginx-check.sh
思路是通過去檢測是否有Nginx進(jìn)程,檢測到?jīng)]有nginx進(jìn)程時先執(zhí)行Nginx的重啟操作,一秒之后再次檢測,如果Nginx進(jìn)程還是不存在則關(guān)閉Keepalived,使VIP漂移到另一個節(jié)點
#!/bin/bash
if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
systemctl restart nginx
sleep 1
if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
systemctl stop keepalived
fi
fi
遇到的一些問題
當(dāng)在腳本里使用ps aux | grep nginx | grep -v grep | wc -l去檢測Nginx進(jìn)程時發(fā)現(xiàn)腳本一直未生效,合理懷疑是Keepalived運行用戶在執(zhí)行這條命令時存在權(quán)限問題(腳本不能配置權(quán)限為777,Keepalived會警告并失效)
本次使用的高可用架構(gòu)為單VIP架構(gòu),后續(xù)也可以嘗試雙VIP架構(gòu),即互為主備機(jī),配置兩個VIP模塊,可以選擇使用一個VIP接收流量,也可以使用兩個VIP來監(jiān)聽流量,看業(yè)務(wù)的需求。
在單VIP高可用架構(gòu)中,如果想要主機(jī)恢復(fù)后VIP不漂移到主機(jī)上,可以將主機(jī)的state也設(shè)置為BACKUP,但優(yōu)先級需要比備機(jī)高一些,以確保初始狀態(tài)VIP是綁定在主機(jī)上的
總結(jié)
以上是生活随笔為你收集整理的Keepalived+Nginx高可用案例(抢占式与非抢占式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽世界6.2德拉诺探路者成就怎么做 w
- 下一篇: Nginx配置Websocket