准备三台测试机,一台做为分发器(dir),另外两台做为处理用户请求的服务器(rs),并清空防火墙规则:vim
systemctl stop firewalld
systemctl disable firewalld
systemctl start iptable-service
iptables -F
service iptables savecentos
* 分发器test03: 192.168.77.123
* rs服务器centos0: 192.168.77.129
* rs服务器test-a: 192.168.77.134
* vip: 192.168.77.111bash
1. dir上编写脚本并执行服务器
[root@test03 ~]# vim /usr/local/sbin/lvs_dr.sh [root@test03 ~]# cat /usr/local/sbin/lvs_dr.sh #! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward # 打开端口转发 ipv=/usr/sbin/ipvsadm vip=192.168.77.111 rs1=192.168.77.129 rs2=192.168.77.134 # eno16777736这里换成本身的网卡名 ifdown eno16777736 ifup eno16777736 # 上面两行是清理以前虚拟网卡相关的设置 ifconfig eno16777736:2 $vip broadcast $vip netmask 255.255.255.255 up # 设置虚拟网卡,绑定了一个虚拟ip(vip) route add -host $vip dev eno16777736:2 $ipv -C # 清空规则 $ipv -A -t $vip:80 -s wrr $ipv -a -t $vip:80 -r $rs1:80 -g -w 1 # -g 指 dir模式 $ipv -a -t $vip:80 -r $rs2:80 -g -w 1 [root@test03 ~]# sh /usr/local/sbin/lvs_dr.sh
2. 另外两台rs上编写脚本并执行curl
[root@centos0 ~]# vim /usr/local/sbin/lvs_dir_mod_rs.sh [root@centos0 ~]# cat /usr/local/sbin/lvs_dir_mod_rs.sh #! /bin/bash vip=192.168.77.111 # 把vip绑定在lo上,是为了实现rs直接把结果返回给客户端 ifdown lo ifup lo ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip lo:0 # 如下为更改arp内核参数,是为了让rs顺利发出mac地址给客户端 echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce [root@centos0 ~]# sh /usr/local/sbin/lvs_dir_mod_rs.sh [root@test-a ~]# sh /usr/local/sbin/lvs_dir_mod_rs.sh
3.访问测试测试
[root@test-a ~]# curl localhost Server test-a. [root@centos0 ~]# curl localhost Server centos0.
多刷新几回再访问
url