nginx+keepalived简单双机主从热备

时间:2021-04-16 23:54:46
双机主从热备概述

可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性,从而保证服务器7*24小时运行。

首先使用keepalived虚拟VIP

删除掉原来的  rm -rf  /etc/keepalived/keepalived.conf

vi /etc/keepalived/keepalived.conf

添加:

vrrp_script chk_nginx {

script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
interval 2 #检测时间间隔
weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state MASTER #来决定主从 MASTER为主 BACKUP为从
interface eth0 # 绑定虚拟 IP 的网络接口,根据自己的机器填写 ip a指令查看 (如下图)
virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样 121自己随便定义 是个数字就OK

mcast_src_ip 192.168.91.7 #填写本机ip

priority 100 # 节点优先级,主要比从节点优先级高

nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
authentication { ##账号密码
auth_type PASS
auth_pass 1111
}
# 将 track_script 块加入 instance 配置块
track_script {
chk_nginx #执行 Nginx 监控的服务
}

virtual_ipaddress {
192.168.91.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
}
}

nginx+keepalived简单双机主从热备

Nginx+keepalived简单双机主从热备

每个服务虚拟安装keepalived 虚拟一个VIP ,配置主从关系,当主挂了,直接走备机。

Keepalived虚拟VIP 地址 192.168.91.666

A 服务器 192.168.91.5  从

B 服务器 192.168.91.7  主

Nginx安装: https://www.cnblogs.com/toov5/p/9902692.html

安装成功后修改主服务器的Nginx html的index.html

’访问:  真实物理地址访问结果

nginx+keepalived简单双机主从热备

启动  service keepalived start

启动日志   tail -f /var/log/messages

nginx+keepalived简单双机主从热备

成功!

或者 ip a

nginx+keepalived简单双机主从热备

访问虚拟ip

nginx+keepalived简单双机主从热备

同理设置备机:  修改一个配置 state BACKUP  一个本地ip即可

vrrp_script chk_nginx {

script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
interval 2 #检测时间间隔
weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state BACKUP #来决定主从 MASTER为主 BACKUP为从

interface eth0 # 绑定虚拟 IP 的网络接口,根据自己的机器填写 ip a指令查看 (如下图)
virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样 121自己随便定义 是个数字就OK

mcast_src_ip 192.168.91.5  #填写本机ip

priority 100 # 节点优先级,主要比从节点优先级高

nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
authentication { ##账号密码
auth_type PASS
auth_pass 1111
}
# 将 track_script 块加入 instance 配置块
track_script {
chk_nginx #执行 Nginx 监控的服务
}

virtual_ipaddress {
192.168.91.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
}
}

如果实现一主一备时候 虚拟VIP 只能在一台服务器存放

如果实现多主 多备情况  虚拟VIP 可以多台存放

一主一备 虚拟ip一样

但是 VIP是在主机上的 当主机宕机了之后 会在备机

启动后:

nginx+keepalived简单双机主从热备

nginx+keepalived简单双机主从热备

虚拟vip只在主上

启动 ngxin  keeplived 服务

访问

nginx+keepalived简单双机主从热备

一直是主,刷新

停止主 service keepalived stop 访问

nginx+keepalived简单双机主从热备

虚拟ip 跑这里了 备机

nginx+keepalived简单双机主从热备

启动主

nginx+keepalived简单双机主从热备