背景
今天在项目上部署了一套nginx+keepalived主备模式的高可用集群,在测试验证的过程中,遇到了一点小坑,弄了半天发现是配置的问题。
部署架构
两台nginx负载均衡服务器+两台应用服务器
高可用原理
主备
两台负载均衡服务器一主一备,正常情况下,VIP在主节点,此时只有主节点提供负载均衡服务。当主节点宕机时,VIP会漂移到备用节点,这个漂移过程是利用keepalived完成的,此时由备用节点提供服务,当主节点恢复正常时,VIP会回到主节点(这个也可以配置主备切换,也就是原来的备用节点变成主节点,恢复正常的旧的主节点现在变成备用节点)。
应用服务器集群
负载均衡通过反向代理把请求转发到两台应用服务器,通过轮询的策略转发请求。当有一台服务器宕机时,请求会转发到另一台正常的服务器,不再把请求发到宕机的服务器,直到服务器恢复正常才会发送请求过去。
测试场景
一、模拟停服务
1、关掉负载均衡主节点服务器的nginx或者keepalived,此时会自动切换到备用节点提供服务,服务正常。
2、在上一步的基础上,停止一台应用服务器的服务(杀掉进程),此时ng