简单配置nginx+keepalived高可用主备模式

准备两台nginx(安装参考:yum安装nginx

主:nginx-master 192.168.44.132
备:nginx-backup 192.168.44.133

1、 修改index文件方便查看keepalived效果

1.1、 修改主服务器index文件

[root@nginx-master html]# vim index.html
<h1>this is nginx-master</h1>

在这里插入图片描述
1.2、 修改备服务器index文件

[root@nginx-backup html]# vim index.html
<h1>this is nginx-backup</h1>

在这里插入图片描述

2、 下载keepalived并配置

2.1、主服务器下载配置keepalived(192.168.44.132)
yum -y install keepalived		#下载
systemctl enable --now keepalived		#启动自启
2.1.1、修改keepalived配置文件
使用yum安装的keepalived的配置文件位置在/etc/keepalived

vim keepalived.conf

global_defs {
  router_id nginx-master ##标识节点的字符串,通常为hostname
}
## keepalived 会定时执行脚本并且对脚本的执行结果进行分析,动态调整	vrrp_instance的优先级。这里的权重weight 是与下面的优先级priority有关,如果执行了一次检查脚本成功,则权重会-20,也就是由100 - 20 变成了
80,Master 的优先级为80 就低于了Backup的优先级90,那么会进行自动的主备切换。
## 如果脚本执行结果为0并且weight配置的值大于0,则优先级会相应增加。
## 如果脚本执行结果不为0 并且weight配置的值小于0,则优先级会相应减少。
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_pid.sh" ##执行脚本位置、需要自己编写
interval 2 ##检测时间间隔
weight -20 ## 如果条件成立则权重减20(-20)
}
## 定义虚拟路由 VI_1为自定义标识。
vrrp_instance VI_1 {
state MASTER   ## 主节点为MASTER,备份节点为BACKUP
## 绑定虚拟IP的网络接口(网卡),与本机IP地址所在的网络接口相同(我这里是ens33)
interface ens33
virtual_router_id 172  ## 虚拟路由ID号
mcast_src_ip 192.168.44.132  ## 本机ip地址
priority 100  ##优先级配置(0-254的值)
Nopreempt  ## 
advert_int 1 ## 组播信息发送间隔,俩个节点必须配置一致,默认1s

track_script {
    chk_nginx
}

virtual_ipaddress {
    192.168.44.139 ## 虚拟ip(vip),可以指定多个(这里设置同一网段是为了方便测试,不然就需要代理或者路由了)
}
}
2.1.2、编写nginx状态检测脚本
vim nginx_pid.sh

#!/bin/bash
Pid_num=`ps -C nginx --no-header |wc -l`
if [ $Pid_num -eq 0 ];then
 systemctl restart nginx    #重启nginx
  sleep 3
        Pid_num=`ps -C nginx --no-header |wc -l`
        if [ $Pid_num -eq 0 ];then
             systemctl stop keepalived      #如果重启失败,关闭keepalived
fi
fi

chmod a+x nginx_pid.sh #脚本给执行权限

2.1.3、重启keepalived
systemctl restart keepalived
2.2、备服务器下载配置keepalived(192.168.44.133)

安装忽略

2.2.1、修改keepalived配置文件
global_defs {
router_id nginx-backup
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_pid.sh"
interval 2
weight -20
}

vrrp_instance VI_1 {
state BACKUP			#备用服务器
interface ens33
virtual_router_id 173
mcast_src_ip 192.168.44.133         ## 本机ip地址
priority 90 ##优先级配置需要小于主服务器配置
advert_int 1		#与主服务器保持一致

track_script {
    chk_nginx
}

virtual_ipaddress {
    192.168.44.139
}
}
2.2.2、编写nginx状态检测脚本

与主服务器一致(这里忽略)

2.2.3、重启keepalived
systemctl restart keepalived

3、 进行测试

3.1、停止master服务器的nginx和keepalived进行测试
systemctl stop keepalived && systemctl stop nginx
3.2、使用虚拟IP:192.168.44.139 进行访问测试

在这里插入图片描述
#可以看到已经完成IP漂移了

启动master服务器上的nginx 和 keepalived在次访问测试
在这里插入图片描述
#流量成功发送到了maser服务器

keepalived的日志默认输出在/var/log/message中,不利于查看修改keepalived的默认存储路径

keepalived修改默认日志输出的路径

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值