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)配置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进程