Keepalived+Nginx实现双主高可用负载均衡


一、部署Nginx+keepalived高可用有两种配置方案:

  1.Nginx+keepalived 主从配置

    前端使用两台机器,使用一个VIP,即其中一台为主负责全部请求,一台为备,只用在主出现故障时,才会替代主处理请求,平常处于闲置状态,此方案不够理想。

  2.Nginx+keepalived 双主配置

     前端使用2台机器,使用两个VIP,互为主备,不考虑其他情况时均衡处理请求,当其中一台机器出现故障时,另一台负责处理对两台机器的请求,此种模型比较适合当前架构环境。

     本文以双主高可用负载均衡为例

  3.配置拓扑结构wKioL1dEaOejGDZCAADqjghUBW0475.png

准备测试环境:4台虚拟主机

 

节点一:

        DIP:172.18.123.10

        主VIP:172.18.123.22

        备VIP:172.18.123.23

节点二:

        DIP:172.18.123.11

        主VIP:172.18.123.23

        备VIP172.18.123.22

 

WEB服务:

  RIP1:172.18.123.50

  RIP2:172.18.123.51

 

4.软件安装

1)在节点一和节点二主机上分别安装keepalived及nginx

wKiom1dEaOfxSFG2AAAT40YHT4A624.png

2)在后端两台服务器上分别安装apache并配置测试页面

wKioL1dEajGC9la9AAAewmRL3z0672.png

wKioL1dEajGAZE1zAAAd3T00rdw767.png

5.配置节点一主机的keepalived.

wKiom1dEac2wT9bCAAA2Qs37Z2g796.png

wKiom1dEabfCkGzDAADKZQrrIf0019.png

配置节点二主机的keepalived,配置基本同节点一的,只需修改黄线标识出的部分。

wKioL1dEawLRieI4AADJ0Jb-_-s357.png

编写nginx状态检测脚本,放到/etc/keepalived/下,为方便测试,注释掉一部分内容,脚本如下:

wKioL1dEazCw9LyKAAAfcT1c6uQ865.png

6.配置节点一主机的nginx服务,节点二同节点一。

wKioL1dEa2yQcSgqAABI5oW1Cog301.png

二、进行故障测试

 

1.检查语法错误及启动服务

wKiom1dEaq6DDTcBAAAaf7***HQ337.png

查看网卡ip信息

节点一

wKioL1dEahPyKlYsAAAu0kqfGec786.png

节点二:

wKiom1dEaSCR2aF6AAAvOuFjyDY913.png

2.网页测试:

VIP:172.18.123.22

wKioL1dEbAigS8ggAAA_d8EtXVs923.pngwKiom1dEaxbx4xSLAAA-dh9JP_s835.png

VIP:172.18.123.23

wKioL1dEbB_hfFJhAAA-_kGEKRc116.pngwKiom1dEay3hDXJBAAA-rJ6Gk2I509.png\

两个虚拟ip均可正常访问


3.停止节点二的nginx服务,查看网卡信息

wKiom1dEa1OB5BThAAA3ValOHTs266.png