Keepalived + Nginx实现高可用

IP规划

VIP

IP

nginx端口

默认主从

192.168.100.250

192.168.100.201

80

MASTER

192.168.100.250

192.168.100.202

80

BACKUP

  1. 基础环境配置

(1)配置IP

(2)修改主机名

(3)配置yum源

(两台虚拟机相同)

2. 安装nginx

(1)首先安装依赖(两个节点同步)

(2)安装nginx

(3)解压nginx压缩包

(4)进入nginx目录,编译并安装

(两个节点同步)

(5)修改nginx首页面IP地址

(welcome to nginx改成本机IP,从节点同理,改为192.168.100.202)

(6)启动nginx

(两个节点同步)

防火墙开启80端口

浏览器访问nginx

3.安装keepalived

(1)编辑配置文件(主节点)

(从节点)

(2)编写nginx状态检测脚本

给脚本添加执行权限

(3)开启组播防火墙

查看规则是否生效

(4)启动keepalived

查看是否成功

可以看到,192.168.100.201拿到了VIP 192.168.100.250

而从节点只有192.168.100.202这个IP,正常

注意:MASTER节点正常的情况下,BACKUP节点一定不会有浮动IP,也就是VIP只能同时在一个节点上

(5)验证VIP漂移

关闭主节点的keepalive服务,验证VIP是否会漂移到BACKUP节点上

主节点的VIP已经没了

VIP已经成功漂移到BACKUP节点上了

4. keepalived+nginx的高可用性测试

访问浮动IP

正常情况下,浮动IP飘到MASTER节点上,所以访问后显示的主节点的nginx首页

关闭主节点的keepalived服务后,再次访问浮动IP:

可以看到此时显示的是从节点的nginx首页

NAT模式LVS搭建

NET模式下,调度器需要有两个IP,一个公网IP一个内网IP,真实服务器只需要内网IP。此架构需要准备三台虚拟机。三台虚拟机的IP分配如下:

调度器dir:192.168.100.201(内网IP,vmware为NAT模式),192.168.183.128(公网IP,vmware仅主机模式)。

真实服务器rs1:192.168.100.202(内网IP)

真实服务器rs2:192.168.100.203(内网IP)

其中调度器上有两块网卡,作为内网的这块网卡使用的是NAT的网络,而作为“公网”的网卡使用的是仅主机网络。需要注意,所谓的公网其实仅仅是模拟的,并不是真正意义上的公网。在配置LVS之前,需要做一些准备工作。首先,真实服务器rs1(192.168.100.202)和rs2(192.168.100.203)上要把内网的网关设置为dir的内网IP(192.168.100.201),否则实验无法成功。

在dir上编写脚本

脚本编写完成后直接执行

在dir上分别访问两个rs

可以区分rs1和rs2,然后访问192.168.183.128

连续多次访问,一直请求在rs2上,是因为脚本中有设置-p参数,理论上在300秒内会一直请求在rs2上。重新编辑/usr/local/sbin/lvs_nat.sh脚本把-p参数删除,然后再次测试

DR模式LVS搭建

DR模式需要三台虚拟机,三台虚拟机只需要有“公网”IP,但在这种模式下又多了一个VIP。对应的机器和IP如下:

调度器dir:192.168.100.201

真实服务器rs1:192.168.100.202

真实服务器rs2:192.168.100.203

VIP:192.168.100.110

首先把两台rs的网关改成原始网关,不能继续设置为dir的IP地址了。然后我们需要在dir上编写一个shell脚本

两台rs上也需要编辑脚本

分别执行脚本

执行完三个脚本后,就可以测试了。但这次不可以直接在dir上用curl命令直接测试了,因为VIP在三台机器上都有设置。所以只能用浏览器来测试结果

keepalived+LVS

LVS架构中,不管是NAT模式还是DR模式,当后端的RS宕掉时,调度器依然会把请求转发到宕掉的RS上,这样的结果并不是我们想要的。其实,keepalived就可以解决该问题,它不仅仅有高可用的功能,还有负载均衡的功能。在调度器上只要安装了keepalived,就不用再安装ipvsadm了,也不用去编写LVS相关的脚本了,也就是说keepalived已经嵌人了LVS功能。完整的keepalived+LVS架构需要有两台调度器实现高可用,提供调度服务的只需要一台,另外一台作为备用。

为了节省资源,我们只设置一台主keepalived

主keepalived(调度器):192.168.100.201

真实服务器rs1:192.168.100.202

真实服务器rs2:192.168.100.203

VIP:192.168.100.110

编辑keepalived配置文件

首先清空配置文件

然后编辑

清空之前的ipvsadm和VIP

在两台rs上执行脚本

然后启动keepalived服务

检查有没有keepalived进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值