keepalived+nginx负载均衡高可用遇到的一些问题

今天学习了keepalived+nginx实现高可用负载均衡,keepalived和nginx安装不在这赘述,主要讲遇到的问题。首先我在vmware开了五台虚拟机,其中两台是nginx服务器,一主一备,主ip是192.168.20.18,备ip是192.168.20.22,其他三台ip是192.168.19,20,21,分别是文件服务器和web服务器。nginx主要的配置如下

keepalived+nginx负载均衡高可用遇到的一些问题_第1张图片

两台nginx服务器配置完全相同,主nginx服务器的keepalived配置如下

keepalived+nginx负载均衡高可用遇到的一些问题_第2张图片

备nginx服务器的keepalived配置如下

keepalived+nginx负载均衡高可用遇到的一些问题_第3张图片

两台nginx的keepalived主要区别主备配置MASTER和BACKUP以及优先级配置,其他的基本相同,注意虚拟地址一定要相同,因为我们访问网址的是通过虚拟地址访问的,这里是192.168.20.16,当主nginx未宕机时,该虚拟ip绑定在主nginx服务器的网卡上。主nginx的keepalived一直发心跳包给备nginx服务器,当主nginx宕机,该虚拟地址就转移到了备nginx的网卡上,备nginx提供负载均衡服务。当主nginx宕机后,通过keepalived执行脚本重启nginx,脚本如下,keepalived中配置了每两秒执行一次检测脚本。

keepalived+nginx负载均衡高可用遇到的一些问题_第4张图片

我在所有配置好后,当关掉主nginx服务,通过虚拟ip无法访问,通过查询主备服务器ip a命令显示两台机器都绑定了虚拟ip,这说明两台机器keepalived没有通信,都把自己当主服务器了,关掉防火墙恢复正常,能够通过虚拟ip访问,但是再次关掉nginx服务,nginx还是不能自启,我把脚本里面命令改成如图service keepalived restart,重启keepalived服务,nginx就能正常自启了,按逻辑来讲,执行到脚本第四行就可以启动nginx,但是我搭建的服务不能自启,网上大部分这一行

是killall keepalived,我修改了之后才能自启nginx,不知是哪里配置出了问题,欢迎各位大佬指正。

你可能感兴趣的:(服务器)