Nginx

  • 高可用HA
  • Keepalived概念
  • 虚拟路由冗余协议 VRRP
  • Keepalived双机主备原理


高可用HA

对于nginx集群来说,如果有一个节点宕机了,其他的nginx还是可以继续为用户服务的,但是对于反向代理、负载均衡的nginx,它是一个单节点,挂掉了怎么办?
使用备用机backup ,它与主节点是主备关系,要区别与集群,在同一个时刻,只有一台节点为用户服务,只有主节点master挂掉之后,备用机backup才会充当主节点继续服务,因此达到了一个高可用
HA = High Availability 高可用的意思

Keepalived概念

要实现高可用,就会用到Keepalived

  • 解决单点故障,不仅仅是nginx,redis,mysql配合Keepalived都可以实现高可用
  • 组件免费
  • 可以实现高可用HA机制
  • 基于VRRP协议,它会虚拟出一个ip,这个ip可以代理多个真实的服务器。
    Keepalived会检测nginx的状态,如果发生故障,他就会切换到备用机,并且也会同时通知到管理员,可以进行邮件方式的配置。如果主机修复好了,可以通过Keepalived自动加入内网中,重新会成为主机,那么备用机就不会在继续工作了,备用机会让位。在这个过程中,人工干预的地方只有修复nginx,其他的都是由Keepalived去实现。

虚拟路由冗余协议 VRRP

  • Virtual Router Redundancy Protocol
  • 解决内网单机故障的路由协议
  • 构建有多个路由器MASTER BACKUP,它能够将几台提供相同服务的路由器组成一个路由器组,路由器就可以理解为单个nginx节点,在这个路由器组里面就会有master 以及backup,每一个节点启动,都可以绑定一个虚拟的ip
  • 虚拟IP-VIP(Virtual IP Address),只要部署成功,在当前的网卡下,会有两个IP,一个是当前节点的内网IP,另外一个就是虚拟IP,当有了虚拟IP之后,它就可以和某一个节点去进行一个把控,虚拟IP也可以有多个。
    如果在路由器组有一个master,其余的都是backup,它们彼此之间还会有一个weight,当master挂掉之后,剩余的backup是一个选举的过程,谁的权重越高,谁就能成为leader。

Keepalived双机主备原理

用户之前直接请求到nginx的master节点,现在用户会先请求到虚拟IP,由于虚拟IP和master是绑定到一起的,也会展示master的内容。如果master挂掉之后,用户还是会继续请求到虚拟IP的,虚拟IP就会和backup进行绑定。虚拟IP会进行心跳检测,master挂了之后,虚拟IP就会和backup绑定到一起。

HA和nginx ha和nginx的区别_nginx


注意:配置高可用两个主备节点硬件配置要尽量一样。

Keepalived实现故障转移,故障切换本质就是通过VRRP协议来实现的。主节点会不停的向备用机发送心跳,如果备用机没有接受到心跳,备用机就会默认知道主节点可能就挂掉了,备用机就会接管主节点的服务,也就是说备用机会和虚拟IP(VIP)绑定到一起,继续为用户提供服务,当主节点修复好了之后,主节点会重新接管之前的任务。