环境准备:两台虚拟机,关闭防火墙,selinux,配置阿里云仓库,配置epel
192.168.88.21 dr1 负载均衡器 master
192.168.88.22 dr2 负载均衡器 backup
192.168.88.23 rs1 web1
192.168.88.24 rs2 web2
实验说明:给主机配置一个虚拟IP192.168.88.100 当访问虚拟IP时,可以访问到nginx服务器下的项目。当主机服务器宕机时,备用机可以代替主机工作。当主机nginx服务挂掉后,实现自动启动nginx服务,保持项目可以随时访问。
一、安装Keepalived
1、在master上安装配置Keepalived ipvsadm
yum install keepalived ipvsadm -y
2、在master上修改配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id Director1 #两边不一样。
}
vrrp_instance VI_1 {
state MASTER #另外一台机器是BACKUP
interface ens33 #心跳网卡
virtual_router_id 51 #虚拟路由编号,主备要一致
priority 150 #优先级
advert_int 1 #检查间隔,单位秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.88.100/24 dev ens33 #VIP和工作接口
}
}
virtual_server 192.168.88.100 80 { #LVS 配置,VIP,就是keepalived配置的对外地址
delay_loop 3 #服务论询的时间间隔,#每隔3秒检查一次real_server状态
lb_algo rr #LVS 调度算法
lb_kind DR #LVS 集群模式
protocol TCP
real_server 192.168.88.23 80 {
weight 1 #权重
TCP_CHECK {
connect_timeout 3 #健康检查方式,连接超时时间
}
}
real_server 192.168.88.24 80 {
weight 1
TCP_CHECK {
connect_timeout 3 #设定连接超时时间为3秒 超过视为掉线
}
}
}
3、在backup上安装配置Keepalived ipvsadm
yum install keepalived ipvsadm -y
4、在backup上修改配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id Director2
}
vrrp_instance VI_1 {
state BACKUP #另外一台机器是BACKUP
interface ens33 #心跳网卡
virtual_router_id 51
priority 90 #优先级
advert_int 1 #检查间隔,单位秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.88.100/24 dev ens33 #VIP和工作端口
}
}
virtual_server 192.168.88.100 80 { #LVS 配置,VIP
delay_loop 3 #服务论询的时间间隔
lb_algo rr #LVS 调度算法
lb_kind DR #LVS 集群模式
protocol TCP
real_server 192.168.88.23 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
real_server 192.168.88.24 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}
5、master和backup上启动服务
systemctl enable keepalived
systemctl start keepalived
二、web1和web2配置
1、192.168.88.23(web1)和24(web2)安装nginx,并且设置开机自启
yum install -y nginx
systemctl start nginx
systemctl enable nginx
2、copy网卡配置文件,配置虚拟地址
cp /etc/sysconfig/network-scripts/{ifcfg-lo,ifcfg-lo:0}
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.88.100 #对外提供服务的地址
NETMASK=255.255.255.255
ONBOOT=yes
systemctl restart network
3、、配置路由
route add 192.168.88.100 dev lo
4、配置ARP
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
三、测试: 观察lvs路由条目
1、master上 查询 # ipvsadm -Ln
ipvsadm -Ln
2、观察vip地址在哪台机器上
ip a
3、修改nginx默认项目文件,便于区分访问到那个服务器
web1
echo nginx111 > /usr/share/nginx/html/index.html
web2
echo nginx222 > /usr/share/nginx/html/index.html
4、客户端浏览器访问vip
5、关闭master上的keepalived服务,再次访问vip
systemctl stop keepalived.service
6、关闭web1站点服务,再次访问VIP
systemctl stop nginx
版权归原作者 李高杰996 所有, 如有侵权,请联系我们删除。