keepalived+nginx+应用
生活随笔
收集整理的這篇文章主要介紹了
keepalived+nginx+应用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
達到的效果就是,每個keepalived中都有一個weight,這個數(shù)最大的作為主節(jié)點。意外掛掉就另一個升為leader,比如開始一個6,一個5,掛一次這個數(shù)減2。6掛一次再啟動就是5,4了,兩臺機器以同一個VIP(虛IP)訪問。
要寫一個循環(huán)檢測的腳本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 增加權限
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"
# 間隔時間,單位為秒,默認1秒
interval 2
# 權重,當腳本成功或失敗對當前節(jié)點的優(yōu)先級是增加還是減少
weight ‐5
}
#VRRP實例
vrrp_instance VI_1 {
# 主節(jié)點
state MASTER
# 綁定的網(wǎng)卡,使用ifconfig命令查看獲取
interface ens33
# 虛擬路由id,保證相同
virtual_router_id 51
# 優(yōu)先級,搶占模式下優(yōu)先級高的稱為主
priority 84
# 指定發(fā)送VRRP通告的間隔。單位是秒。
advert_int 2
# 安全認證用的密碼,自定義即可
authentication {
auth_type PASS
auth_pass 1111
}
# 對外暴露的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)先級比master低
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
*.*.*.*
}
track_script {
chk_nginx
}
}
然后可以停掉master,VIP不影響訪問,參考文章地址:https://www.jianshu.com/p/6658257abb65
總結
以上是生活随笔為你收集整理的keepalived+nginx+应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity的Undo:详解解析与实用案例
- 下一篇: Cocos2d-x3.1FileUtil