跳到主要内容

keepalived ngnix高可用

2、配置高可用的准备工作
(1)需要两台服务器 192.168.17.129 和 192.168.17.131 (2)在两台服务器安装 nginx
(3)在两台服务器安装 keepalived
3、在两台服务器安装 keepalived
(1)使用 yum 命令进行安装
yum install keepalived –y
(2)安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf
4、完成高可用配置(主从配置)
(1)修改/etc/keepalived/keepalivec.conf
配置文件
global_defs {
notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL #host中配置
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh" #检查脚本
interval 2
weight 2 }
## keepalived 会定时执行脚本并且对脚本的执行结果进行分析,动态调整vrrp_instance的优先级。这里的权重weight 是与下面的优先级priority有关,如果执行了一次检查脚本成功,则权重会-20,也就是由100 - 20 变成了80,Master 的优先级为80 就低于了Backup的优先级90,那么会进行自动的主备切换。

如果脚本执行结果为0并且weight配置的值大于0,则优先级会相应增加。

如果脚本执行结果不为0 并且weight配置的值小于0,则优先级会相应减少。
————————————————
版权声明:本文为CSDN博主「多纤果冻」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37939251/article/details/84062307
vrrp_instance VI_1 { state BACKUP
#(检测脚本执行的间隔)
# 备份服务器上将 MASTER 改为 BACKUP //网卡
interface ens33
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication { auth_type PASS
auth_pass 1111 }
virtual_ipaddress {
192.168.17.50 // VRRP H 虚拟地址
} }

(2)在/usr/local/src 添加检测脚本 #!/bin/bash
A=`ps -C nginx –no-header |wc -l` if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
(3)把两台服务器上 nginx 和 keepalived 启动 启动 nginx:./nginx
启动 keepalived:systemctl start keepalived.service



master
global_defs {
router_id bhz005 ##标识节点的字符串,通常为hostname

}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ##执行脚本位置

interval 2 ##检测时间间隔

weight -20 ## 如果条件成立则权重减20(-20)

}

## 定义虚拟路由 VI_1为自定义标识。

vrrp_instance VI_1 {
state MASTER ## 主节点为MASTER,备份节点为BACKUP

## 绑定虚拟IP的网络接口(网卡),与本机IP地址所在的网络接口相同(我这里是eth6)

interface eth6

virtual_router_id 172 ## 虚拟路由ID号

mcast_src_ip 192.168.1.172 ## 本机ip地址

priority 100 ##优先级配置(0-254的值)

Nopreempt ##

advert_int 1 ## 组播信息发送间隔,俩个节点必须配置一致,默认1s

authentication {

auth_type PASS

auth_pass bhz ## 真实生产环境下对密码进行匹配

}



track_script {
chk_nginx

}



virtual_ipaddress {
192.168.1.170 ## 虚拟ip(vip),可以指定多个

}

}

#Backup



! Configuration File for keepalived



global_defs {
router_id bhz006

}



vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"

interval 2

weight -20

}



vrrp_instance VI_1 {
state BACKUP

interface eth7

virtual_router_id 173

mcast_src_ip 192.168.1.173

priority 90 ##优先级配置

advert_int 1

authentication {
auth_type PASS

auth_pass bhz

}



track_script {
chk_nginx

}



virtual_ipaddress {
192.168.1.170

}

}

#检测脚本

#!/bin/bash

A=`ps -C nginx –no-header |wc -l`

if [ $A -eq 0 ];then

/usr/local/nginx/sbin/nginx

sleep 2

if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then

killall keepalived

fi

fi