18.1 集羣介紹
18.2 keepalived介紹
18.3/18.4/18.5 用keepalived配置高可用集羣linux
一.集羣介紹nginx
二.keepalived介紹git
三.用Keepalived配置高可用集羣(上)(中)(下)vim
示例一:後端
global_defs {
notification_email {
aming@aminglinux.com
}
notification_email_from root@aminglinux.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}centos
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh" 檢測服務是否正常
interval 3 檢測3秒鐘
}bash
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51 定義路由器的id
priority 100 權重
advert_int 1
authentication { 認證相關的信息
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress { 定義VIP的,共有ip。
192.168.188.100
}服務器
track_script {
chk_nginx
}負載均衡
}curl
#!/bin/bash
#時間變量,用於記錄日誌
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx進程數量
n=`ps -C nginx --no-heading|wc -l`
#若是進程爲0,則啓動nginx,而且再次檢測nginx進程數量,
#若是還爲0,說明nginx沒法啓動,此時須要關閉keepalived
if [ $n -eq "0" ]; then
/etc/init.d/nginx start
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
配置從
global_defs {
notification_email {
aming@aminglinux.com
}
notification_email_from root@aminglinux.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress {
192.168.133.100
}
track_script {
chk_nginx
}
}
#時間變量,用於記錄日誌
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx進程數量
n=`ps -C nginx --no-heading|wc -l`
#若是進程爲0,則啓動nginx,而且再次檢測nginx進程數量,
#若是還爲0,說明nginx沒法啓動,此時須要關閉keepalived
if [ $n -eq "0" ]; then
systemctl start nginx 啓動命令(跟主不同,由於這個是yum安裝的,主是編譯安裝的)
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
測試1:關閉master上的nginx服務 (很差模擬演示)
測試2:在master上增長iptabls規則 (很差模擬演示)
iptables -I OUTPUT -p vrrp -j DROP
測試3:關閉master上的keepalived服務
測試4:啓動master上的keepalived服務(很差模擬演示)