什么是高可用:
在使用 Nginx 做反向代理或者负载均衡的时候,都是以 Nginx 为入口,如果 Nginx 宕机了,那么所有的服务都无法正常提供,影响非常严重。所有我们需要保证 nginx 高可用,就是配置备份机,前一个挂了,还有后一个。
为了避免负载均衡服务器宕机造成严重影响,就需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。
高可用(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如果一个系统能够一直提供服务,那么这个可用性则是百分之百,但是我们不能保证一个系统能永远不出问题,所以我们只能通过设计来尽可能的去减少由于系统的故障所造成的影响。
Keepalived:
Keepalived是一款由C编写的软件,一般解决负载均衡器的高可用性问题,提供了负载均衡、健康检查和高可用的功能,高可用功能是由VRRP协议来实现的。
一、Keepalived安装
在Red Hat 系服务器上安装
yum install keepalived -y
在Debian系服务器上安装
apt install keepalived -y
四、keepalived配置
- # 全局定义标识
- global_defs {
- # 通知收件人地址
- notification_email {
- email
- email
- }
- # 通知发送邮件地址
- notification_email_from email
- # smtp服务器地址
- smtp_server host
- # smtp服务器连接超时时间
- smtp_connect_timeout num
- # 指定LVS导向器的名字
- lvs_id string
- }
- vrrp_instance VI_1 { #定义实例
- state MASTER #指定keepalived节点的初始状态,可选值为MASTER|BACKUP
- interface eth0 #VRRP实例绑定的网卡接口,用户发送VRRP包
- virtual_router_id 51 #虚拟路由的ID,同一集群要一致
- priority 100 #定义优先级,按优先