采用轮叫算法
1.环境准备
192.168.182.100/24 (DR) VIP:192.168.182.10/32
192.168.182.110/24 (RS-1) VIP:192.168.182.10/32
192.168.182.120/24 (RS-2) VIP:192.168.182.10/32
2.LVS安装
yum -y install ipvsadm
规则保存工具:/usr/sbin/ipvsadm --save > /path/to/file
配置文件:/etc/sysconfig/ipvsadm-config
配置DR:
ip addr add dev ens33 192.168.182.10/32 #设置VIP
ipvsadm -C #清除内核虚拟服务器表中的所有记录。
ipvsadm -A -t 192.168.182.10:80 -s rr
ipvsadm -a -t 192.168.182.10:80 -r 192.168.182.110 -g
ipvsadm -a -t 192.168.182.10:80 -r 192.168.182.120 -g
ipvsadm -S > /etc/sysconfig/ipvsadm #保存,保存到一个文件中
ipvsadm -ln #查看规则
配置RS:
yum install -y nginx
echo "real-server1" >> /usr/share/nginx/html/index.html
在lo接口上绑定VIP
ip addr add dev lo 192.168.182.10/32
忽略arp广播,开启路由转发
[root@real-server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@real-server1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
或者
[root@real-server1 ~]#cat /etc/sysctl.conf
net.ipv4.ip_forward =1
net.ipv4.conf.all.arp_ignore=1
匹配精确ip地址回包
[root@real-server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
启动Nginx
systemctl start nginx systemctl enable nginx
判度lvs是否健康的脚本:(可以放到计划任务中定时执行)
#!/bin/bash
#判段lvs是否健康脚本
ipvs=` ipvsadm -Ln |awk '/Route/{print $2}'|awk -F: '{print $1}'`
vip=`ipvsadm -Ln |awk '/TCP/{print $2}'`
for i in $ipvs
do
curl $i &>/dev/null
if [ $? -eq 0 ];then
echo "ok "
else
/usr/sbin/ipvsadm -d -t $vip -r $i
fi
done