1.实验设计
实验所满足的需求
实验集群的组件预定
2.实验操作步骤
实验环境准备步骤 (所有虚拟机)
步骤一:配置主备DR调度器
主调度器配置(192.168.73.105)
备DR调度器:(192.168.73.106)
步骤二:两个Nginx节点服务器的安装配置
Nginx01节点服务器(192.168.73.107)
Nginx02节点服务器(192.168.73.109)
步骤三:安装tomcat服务,进行相关配置
配置 多实例tomcat服务器(192.168.73.109)
配置单实例tomcat服务器(192.168.73.110)
3.实验测试
测试一:直接访问VIP,进行刷新,观察是否出现负载均衡现象
测试二:访问VIP/index.jsp ,并且进行刷新,观察tomcat是否进行负载均衡(同时证明动静分离)
测试三 :关闭主DR调度器,清空历史记录,再次访问VIP观察是否仍然正常运转
测试四: 重启主DR 调度器,清空历史记录,观察主调器是否重新占用VIP,服务是否正常
1.实验设计
实验所满足的需求
满足某公司,想搭建一套高可用的负载均衡DR模式的集群,同时该集群收到用户访问请求时能够自主判断用户发送的请求是动态资源还是静态,依次划分进行动静分离:Nginx处理静态资源,Tomcat处理动态资源
实验集群的组件预定
一台主DR调度器:192.168.73.105 VIP:192.168.73.66
一台备DR调度器:192.168.73.106 VIP:192.168.73.66
Nginx节点服务器01: 192.168.73.107 VIP:192.168.73.66
Nginx节点服务器02: 192.168.73.108 VIP:192.168.73.66
Tomcat多实例节点服务器: Tomcat01:192.168.73.109:8080 Tomcat02: 192.168.73.109:8081
Tomcat单例节点服务器: Tomcat03:192.168.73.110:8080
客户访问测试机:192.168.73.111
实验部署简图:
2.实验操作步骤
本次实验的操作中用到的服务均为yum本地源服务或则源码编译安装。为了实验的流畅性,建议所有虚拟机搭建本地源来完成实验
实验环境准备步骤 (所有虚拟机)
#关闭防火墙和selinux,防止其对实验干扰
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
#搭建本地yum源
mount /dev/sr0 /mnt
cd /etc/yum.repos.d
mkdir ./repo.bak
mv *.repo ./repo.bak/
vim local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
yum clean all && yum makecache
步骤一:配置主备DR调度器
主调度器配置(192.168.73.105)
(1)修改keepalived的主配置参数
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
......
global_defs { #定义全局参数
--10行--修改,邮件服务指向本地
smtp_server 127.0.0.1
--12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
router_id LVS_01
--14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接
#vrrp_strict
}
vrrp_instance VI_1 { #定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUP
state MASTER
--21行--修改,指定承载vip地址的物理接口
interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致
virtual_router_id 10
#nopreempt #如果设置非抢占模式,两个节点state必须为BACKUP,并加上配置 nopreempt
--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
priority 100
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #定义认证信息,每个热备组保持一致
auth_type PASS #认证类型
--27行--修改,指定验证密码(可以自定义),主备服务器保持一致
auth_pass 1111
}
virtual_ipaddress { #指定群集vip地址
192.168.73.66
}
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.73.66 80 {
delay_loop 6 #健康检查的间隔时间(秒)
lb_algo rr #指定调度算法,轮询(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
lb_kind DR
persistence_timeout 0 #连接保持时间(秒)
protocol TCP #应用服务采用的是 TCP协议
--43行--修改,指定第一个Web节点的地址、端口
real_server 192.168.73.107 80 {
weight 1 #节点的权重
--45行--删除,添加以下健康检查方式
TCP_CHECK {
connect_port 80 #添加检查的目标端口
connect_timeout 3 #添加连接超时(秒)
nb_get_retry 3 #添加重试次数
delay_before_retry 3 #添加重试间隔
}
}
real_server 192.168.73.108 80 { #添加第二个 Web节点的地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
##删除后面多余的配置##
}
systemctl start keepalived
ip addr #查看虚拟网卡vip
(2)启动ipvsadm服务
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -ln
(3)添加内核参数
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
备DR调度器:(192.168.73.106)
相关服务的安装:
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
(1)由主调度器将keepalived配置 文件通过scp传输给备DR调度器:
cp -a keepalived.conf keepalived.conf.bak1
scp `pwd`/keepalived.conf.bak1 root@192.168.73.106:`pwd`
(2)进行原配置备份,并且用scp传输的文件覆盖原文件 :
cd /etc/keepalived/
cp -a keepalived.conf keepalived.conf.bak
cp -a keepalived.conf.bak1 keepalived.conf
(3)进行配置修改调整:
#########全局配置中定义LVS编号为02#########
router_id LVS_02
######虚拟网卡######
vrrp_instance VI_1 {
state BAKUP #修改状态为备份
.................
priority 90 #优先级设置要比主DR调度器低
}
(4)启动ipvsadm服务
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -ln
(5)添加内核参数
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
步骤二:两个Nginx节点服务器的安装配置
Nginx服务源码编译安装 :
Nginx网站服务详解(第一部分:编译安装及系统服务添加)_站在这别动,我去给你买橘子的博客-优快云博客
https://blog.youkuaiyun.com/qq_62462797/article/details/127072140?spm=1001.2014.3001.5501
Nginx01节点服务器(192.168.73.107)
(1)设置回环虚拟网卡(VIP),添加静态路由
#配置回环的虚拟网卡,设置VIP承载
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.73.66
NETMASK=255.255.255.255
service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
#添加静态路由
route add -host 192.168.73.66 dev lo:0
(2) 设置内核参数
——响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突(web1和web2的相同设置)
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
(3)编写Nginx01的静态资源测试网页
vim /usr/local/nginx/html/index.html
<html>
<body>
<h1> this is Nginx01 static test !</h1>
</body>
</html>