LVS借助linux内核转发功能,将用户请求转发给后端机器,从而访问到web
LVS机器部署,需要两块网卡,一块内网网卡,一块外网网卡,ens33为外网网卡,ens36为内网网卡,外网网段为45,内网网段为61
关闭防火墙,并在nginx发布目录添加测试页面,192.168.61.100 test pages.
启动nginx服务,并curl访问本地nginx网址,显示出测试页面
将另一台后端机器的网关ip改为LVS的内网ip地址,网段改为网关网段
可以通过后端服务器访问网关ip
可以通过LVS服务器访问后端服务器的测试网页
可以通过前台访问测试网页
安装LVS服务,在LVS机器上安装LVS服务
查看机器是否安装完成LVS服务
LVS安装完成后,需要进行配置,主要配置方法有三步:添加虚拟服务器IP,添加realserver后端服务及启动LVS服务器VIP地址
增加虚拟服务器
ipvsadm -A -t 192.168.45.136:80 -s wrr,通过访问虚拟ip转发给后端server来访问网站
添加后端均衡机器ip
ipvsadm -a -t 192.168.45.136:80 -r 192.168.61.100 -m -w 100
查看ipvsadm的配置信息
开启路由转发功能,将后端转发参数改为1
此时访问虚拟ip,即可将请求转发给后端服务器,访问测试页面
移除负载均衡池方法:
编写一个自动删除负载均衡池脚本
#!/bin/bash
#auto check realserver status
#by author xin.linux
#2024年9月23日15点07分
#正则表达式取出配置的负载均衡池ip
while true
do
#将取到的负载均衡池中的ip放入数组中
RS_IP=($(ipvsadm -L -n | grep -aiE "Masq" | grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}"))
#${RS_IP[@]}表示取数组中的全部数据,${RS_IP[0]}表示取数组中的第一个数据
for ip in ${RS_IP[@]}
do
curl http://$ip/ >>/dev/null
if [ $? -ne 0 ];then
ipvsadm -d -t 192.168.45.136:80 -r $ip
else
ipvsadm -L -n | grep -aiE "$ip" >>/dev/null
if [ $? -ne 0 ];then
ipvsadm -a -t 192.168.45.136:80 -r $ip -m -w 100
fi
fi
done
sleep 5
done
当检测到均衡池中的ip宕机时,自动删除掉均衡池中的ip