1)RS1和RS2分别安装httpd
yum -y install httpd
2)RS1和RS2分别写入测试页面
echo RS1 > /var/www/html/index.html
echo RS2 > /var/www/html/index.html
3)RS1和RS2分别开启服务与自启动
systemctl enable httpd
systemctl start httpd
临时关闭防火墙,根据个人情况,实验环境无所谓
systemctl stop firewalld
4)分别在两台RS1和RS2上在lo接口上配置vip地址
ifconfig lo:1 123.123.123.2 netmask 255.255.255.252 123.123.123.2 up
5)分别在RS1和RS2上关闭发送和接收arp消息
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
4)在客户端PC上分别访问测试是否正常
4.配置LVS服务器
1)安装ipvsadm软件包
yum -y install ipvsadm
2)配置VIP地址,此地址必须要配置在VS服务器和RS服务器上且地址必须保证一致
ifconfig ens33:1 123.123.123.2 netmask 255.255.255.252 123.123.123.2 up
3)配置wrr的工作模式
-F 清除所有策略
-A 添加VS服务器 -t / -u TCP或UDP协议 -s 使用的调度类型
-a -t 添加对rs绑定用的 -t / -u TCP或UDP协议 -g 代表DR模式 -w 权重比例
调度类型还有很多种大家可以根据个人情况测试,在架设LVS之-基础知识(一)有讲
iptables -F 清空防火墙ipvsadm -A -t 123.123.123.2:80 -s wrr
ipvsadm -a -t 123.123.123.2:80 -r 172.18.33.3 -g -w 1
ipvsadm -a -t 123.123.123.2:80 -r 172.18.33.4 -g -w 3
4)测试
当前使用的是wrr权重模式 ,且172.18.33.4与172.18.33.3是3:1的关系,172.18.33.4访问的几率较大
在客户端PC上去访问123.123.123.2测试是否正常
最后附上两个用于便捷配置VS与DR服务器的脚本
LVS服务器配置脚本:
#!/bin/bash
#Author:DaoKE
vip='123.123.123.2'
iface='ens33:1'
mask='255.255.255.252'
port='80'
rs1='172.18.33.3'
rs2='172.18.33.4'
scheduler='wrr'
type='-g'
rpm -q ipvsadm &> /dev/null || yum -y install ipvsadm &> /dev/null
case $1 in
start)
ifconfig $iface $vip netmask $mask #broadcast $vip up
iptables -F
ipvsadm -A -t ${vip}:${port} -s $scheduler
ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
echo "The VS Server is Ready!"
;;
stop)
ipvsadm -C
ifconfig $iface down
echo "The VS Server is Canceled!"
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac
RS服务器配置脚本
#!/bin/bash
#Author:DaoKe
vip=123.123.123.2
mask='255.255.255.252'
dev=lo:1
rpm -q httpd &> /dev/null || yum -y install httpd &>/dev/null
service httpd start &> /dev/null && echo "The httpd Server is Ready!"
echo "<h1>`hostname`</h1>" > /var/www/html/index.html
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig $dev $vip netmask $mask #broadcast $vip up
#route add -host $vip dev $dev
echo "The RS Server is Ready!"
;;
stop)
ifconfig $dev down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "The RS Server is Canceled!"
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac