Nginx + KeepAlived高可用负载均衡集群

目录

一、Keepealived脑裂现象

1.现象

2.原因

3.解决

4.预防

二、实验部署

1.两台nginx做初始化操作并安装nginx

2.四层反向代理配置

3.配置高可用

4.准备检查nginx运行状态脚本

5.开启keepalived服务并测试


一、Keepealived脑裂现象

1.现象

主服务器和备服务器都同时拥有相同的VIP
在"双机热备"高可用(HA)系统中,当联系两个节点的"心跳线"断开时(即两个节点断开联系时),本来为一个整体、动作协调的HA系统,就分裂成为两个独立的节点(即两个独立的个体)。由于相互失去了联系,都以为是对方出了故障,此时备用调度器会运转起来争做主调度器的工作,而主调度器依然保持着调度工作,两个调度的同时运转导致整个系统的紊乱。就会发生严重后果:共享资源被瓜分、两边"服务"都起不来或者两边"服务"都起来了,但同时读写"共享存储",导致数据损坏(常见如数据库轮询着的联机日志出错)

2.原因

因为主服务器和备服务器的通信中断,导致备服务器无法收到主服务器发送的VRRP报文,备服务器误认为主服务器已经故障了并通过ip命令生成VIP

硬件原因

高可用服务器各节点之间心跳线链路发生故障,导致无法正常通信

因心跳线坏了(包括断了,老化)

因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)

因心跳线间连接的设备故障(网卡及交换机)

因仲裁的机器出问题(采用仲裁的方案)

运用配置原因

高可用服务器上开启了iptables防火墙阻挡了心跳消息传输

高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败

其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等

Keepalived配置里同一VRRP实例如果virtual_router_id两端参数配置不一致也会导致裂脑问题发生

3.解决

关闭主服务器或备服务器其中一个的keepalived服务

4.预防

方法1

如果是系统防火墙导致,则关闭防火墙或添加防火墙规则放通VRRP组播地址(224.0.0.18)的传输

方法2

如果是主备服务器之间的通信链路中断导致,则可以在主备服务器之间添加双链路通信

方法3

在主服务器使用脚本定时判断与备服务器通信链路是否中断,如果判断是主备服务器之间的链接中

断则自行关闭主服务器上的keepalived服务

方法4

利用第三方应用或监控系统检测是否发生了脑裂故障现象,如果确认发生了脑裂故障则通过第三方

应用或监控系统来关闭主服务器或备服务器其中一个的keepalived服务

二、实验部署

此实验基于以上 LVS+KeepAlived高可用负载均衡群集的部署实验为基础,将两台调度器改为

nginx服务器,其余不变

准备虚拟机

192.168.80.122(nginx服务器四层代理)

192.168.80.123(nginx服务器四层代理)

192.168.80.124(web1)

192.168.80.125(web2)

192.168.80.126(nfs共享存储)

1.两台nginx做初始化操作并安装nginx

2.四层反向代理配置

1)修改主调度器配置

stream {
    upstream backends {
         server 192.168.10.124:80;
         server 192.168.10.125:80;
     }
    server {
         listen 8080;
         proxy_pass backends;
    }
}

2)修改备调度器配置

将主调度器的nginx.conf复制过来

scp nginx.conf 192.168.10.122:'pwd'

3)浏览器测试两台nginx服务器

192.168.10.122/192.168.10.123

**3.**配置高可用

两台nginx服务器安装keepalived

yum install -y keepalived

4.准备检查nginx运行状态脚本

1)主服务器

#!/bin/bash
 
if ! killall -0 nginx &> /dev/null
   then
   systemctl stop keepalived
fi

修改配置文件 keepalived.conf

2)备服务器

先做备份

将主里的复制到备里

修改配置文件 keepalived.conf

5.开启keepalived服务并测试

1)分别开启主备两台服务器keepalived

2)浏览器测试

相关推荐
听楷哥说跨境23 分钟前
如何使用代理 IP 防止多个 Facebook 帐户关联 - 最佳实践
网络·tcp/ip·安全·ip
念晚91725 分钟前
Linux各种命令——tac命令,more 命令, less命令,head命令,tail命令,file 命令, stat 命令
linux·运维·服务器·前端·网络·数据库·less
IT技术分享社区1 小时前
IPSec:互联网协议安全机制的深度解析与应用
网络·tcp/ip·微软技术
小程序照片合成1 小时前
网线直连电脑可以上网,网线连tplink路由器上不了网
网络·wifi·电脑·路由器·上不了网
亿林网络安全事业部1 小时前
对于中小企业,如何符合等保2.0的等级划分和保护要求?
网络·安全·web安全
今君2 小时前
【linux】网络基础(1)
linux·运维·网络
张赛能2 小时前
计算机网络-第3章数据链路层
网络·网络协议·计算机网络
Iᴛ's ᴅᴇsᴛɪɴʏ²⁸.2 小时前
Ansible 基础入门
网络
昂辉科技2 小时前
新版本发布丨昂辉科技EasySAR-Configurator V1.2.0再启航
运维·网络
LNTON羚通3 小时前
视频融合共享平台LntonCVS统一视频接入平台智慧安防应用方案
网络·人工智能·算法·安全·音视频