对于nginx集群来说,如果有一个节点宕机了,其他的nginx还是可以继续为用户服务的,但是对于反向代理、负载均衡的nginx,它是一个单节点,挂掉了怎么办? 使用备用机backup ,它与主节点是主备关系,要区别与集群,在同一个时刻,只有一台节点为用户服务,只有主节点master挂掉之后,备用机backup才会充当主节点继续服务,因此达到了一个高可用 HA = High Availability 高可用的意思
要实现高可用,就会用到Keepalived
解决单点故障,不仅仅是nginx,redis,mysql配合Keepalived都可以实现高可用组件免费可以实现高可用HA机制基于VRRP协议,它会虚拟出一个ip,这个ip可以代理多个真实的服务器。 Keepalived会检测nginx的状态,如果发生故障,他就会切换到备用机,并且也会同时通知到管理员,可以进行邮件方式的配置。如果主机修复好了,可以通过Keepalived自动加入内网中,重新会成为主机,那么备用机就不会在继续工作了,备用机会让位。在这个过程中,人工干预的地方只有修复nginx,其他的都是由Keepalived去实现。用户之前直接请求到nginx的master节点,现在用户会先请求到虚拟IP,由于虚拟IP和master是绑定到一起的,也会展示master的内容。如果master挂掉之后,用户还是会继续请求到虚拟IP的,虚拟IP就会和backup进行绑定。虚拟IP会进行心跳检测,master挂了之后,虚拟IP就会和backup绑定到一起。 注意:配置高可用两个主备节点硬件配置要尽量一样。 Keepalived实现故障转移,故障切换本质就是通过VRRP协议来实现的。主节点会不停的向备用机发送心跳,如果备用机没有接受到心跳,备用机就会默认知道主节点可能就挂掉了,备用机就会接管主节点的服务,也就是说备用机会和虚拟IP(VIP)绑定到一起,继续为用户提供服务,当主节点修复好了之后,主节点会重新接管之前的任务。