介紹一個比較常用,也比較實用的nginx在生產中的架構模式:nginx+keepalive+雙VIP
架構圖如下:

主機1例外時,VIP1切換到主機2,此時兩個VIP都指向主機2,等主機1恢復,VIP1自動切回主機1
nginx的安裝這里就不過多描述了,主要講講keepalive的配置
假設主機和VIP如下:
主機:1.1.1.1,2.2.2.2
VPI:11.11.11.11,22.22.22.22
具體keepalive配置 以及 keepalive使用到的nginx健康檢查腳本 如下:
【1.1.1.1主機 keepalive配置】
! Configuration File for keepalived
global_defs {
router_id sz-lvs1
}vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -50
}vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 246
priority 100
authentication {
auth_type PASS
auth_pass 2461
}
virtual_ipaddress {
11.11.11.11
}
track_script {
check_nginx
}
}vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id 247
priority 70
authentication {
auth_type PASS
auth_pass 2471
}
virtual_ipaddress {
22.22.22.22
}
track_script {
check_nginx
}
}
【2.2.2.2主機 keepalive配置】
! Configuration File for keepalived
global_defs {
router_id sz-lvs1
}vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -50
}vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 246
priority 70
authentication {
auth_type PASS
auth_pass 2461
}
virtual_ipaddress {
11.11.11.11
}
track_script {
check_nginx
}
}vrrp_instance VI_2 {
state MASTER
interface eth0
virtual_router_id 247
priority 100
authentication {
auth_type PASS
auth_pass 2471
}
virtual_ipaddress {
22.22.22.22
}
track_script {
check_nginx
}
}
【keepalive配置的nginx健康檢查腳本check_nginx.sh】
#!/bin/sh
count=`ps aux | grep -v grep |grep -v "check_nginx\|nginx.conf" | grep nginx | wc -l`
if [ $count -gt 0 ]; then
exit 0
else
exit 1
fi
這樣就完成高可用的nginx的搭建了
歡迎關注我的公眾號:龍叔運維
持續分享運維經驗

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292907.html
標籤:其他
