# 在两个keepalived节点都配置nginx反向代理
[root@ka1 ~]# vim /etc/nginx/nginx.conf
http {
upstream webservers {
server 192.168.1.51:80 weight=1;
server 192.168.1.52:80 weight=1;
}
server {
listen 80;
location / {
proxy_pass http://webservers/;
}
}
}
# 在两个keepalived节点都配置实现nginx反向代理高可用
[root@ka1 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from kaadmin@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id ka1
vrrp_mcast_group4 224.0.100.100
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 1
weight -30
fall 3
rise 5
timeout 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 66
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.55/24 dev eth0 label eth0:1
}
track_interface {
eth0
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
track_script {
check_nginx
}
}
[root@ka2 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from kaadmin@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id ka2
vrrp_mcast_group4 224.0.100.100
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 1
weight -30
fall 3
rise 5
timeout 2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 66
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.55/24 dev eth0 label eth0:1
}
track_interface {
eth0
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
track_script {
check_nginx
}
}
[root@ka1 ~]# cat /etc/keepalived/check_nginx.sh
#!/bin/bash
/usr/bin/killall -0 nginx || systemctl restart nginx
[root@ka1 ~]# chmod a+x /etc/keepalived/check_nginx.sh
# 两个节点都要配置,利用通知脚本,实现切换时,自动重启服务
[root@ka1 ~]# vim /etc/mail.rc
set from=252409868@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=252409868@qq.com
set smtp-auth-password=zkgjekodlklfbhdf
set smtp-auth=login
set ssl-verify=ignore
[root@ka1 ~]# vim /etc/keepalived/notify.sh
#!/bin/bash
contact='****@189.cn'
notify() {
mailsubject="$(hostname) to be $1:vip floating"
mailbody="$(date +'%F %T'):vrrp transition,$(hostname) change to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
systemctl start nginx
;;
backup)
notify backup
systemctl restart nginx
;;
fault)
notify fault
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
esac
[root@ka1 ~]# chmod a+x /etc/keepalived/notify.sh
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END