keepalived+nginx+应用
生活随笔
收集整理的這篇文章主要介紹了
keepalived+nginx+应用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
達(dá)到的效果就是,每個(gè)keepalived中都有一個(gè)weight,這個(gè)數(shù)最大的作為主節(jié)點(diǎn)。意外掛掉就另一個(gè)升為leader,比如開(kāi)始一個(gè)6,一個(gè)5,掛一次這個(gè)數(shù)減2。6掛一次再啟動(dòng)就是5,4了,兩臺(tái)機(jī)器以同一個(gè)VIP(虛IP)訪問(wèn)。
要寫(xiě)一個(gè)循環(huán)檢測(cè)的腳本check_nginx.sh,看keepalived的狀態(tài),如下:
sudo cat >/etc/keepalived/check_nginx.sh<<‐'EOF'
#!/bin/bash
counter=$(ps ‐C nginx ‐‐no‐heading|wc ‐l)
if [ "${counter}" = "0" ]; then
systemctl start nginx
sleep 2
counter=$(ps ‐C nginx ‐‐no‐heading|wc ‐l)
if [ "${counter}" = "0" ]; then
systemctl stop keepalived
fi
fi
EOF
然后給check_nginx.sh 增加權(quán)限
chmod 755 /etc/keepalived/check_nginx.sh
然后是keepalived master 配置:
# 全局配置,路由ID,固定不變
global_defs {
router_id LVS_DEVEL
}
# 定義Nginx狀態(tài)腳本
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
# 間隔時(shí)間,單位為秒,默認(rèn)1秒
interval 2
# 權(quán)重,當(dāng)腳本成功或失敗對(duì)當(dāng)前節(jié)點(diǎn)的優(yōu)先級(jí)是增加還是減少
weight ‐5
}
#VRRP實(shí)例
vrrp_instance VI_1 {
# 主節(jié)點(diǎn)
state MASTER
# 綁定的網(wǎng)卡,使用ifconfig命令查看獲取
interface ens33
# 虛擬路由id,保證相同
virtual_router_id 51
# 優(yōu)先級(jí),搶占模式下優(yōu)先級(jí)高的稱(chēng)為主
priority 84
# 指定發(fā)送VRRP通告的間隔。單位是秒。
advert_int 2
# 安全認(rèn)證用的密碼,自定義即可
authentication {
auth_type PASS
auth_pass 1111
}
# 對(duì)外暴露的VIP地址
virtual_ipaddress {
*.*.*.*
}
# 指定Nginx執(zhí)行狀態(tài)腳本
track_script {
chk_nginx
}
}
然后是keepalived slave配置:
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight ‐5
}
vrrp_instance VI_1 {
# 初始角色Backup
state BACKUP
interface *.*.*.*
virtual_router_id 51
# 優(yōu)先級(jí)比master低
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
*.*.*.*
}
track_script {
chk_nginx
}
}
然后可以停掉master,VIP不影響訪問(wèn),參考文章地址:https://www.jianshu.com/p/6658257abb65
總結(jié)
以上是生活随笔為你收集整理的keepalived+nginx+应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 四级技能修炼NPC脚本参考
- 下一篇: SwiftStack 因战略转变而裁员