用户的请求被调度器动态地分配到真实服务器上,真实服务器响应请求把结果直接返回给用户。不过,在这种模式下不会封装IP,而是将数据帧的MAC地址改为真实服务器的MAC地址。
| 模拟规则 | 主机名 | IP | VIP |
|---|---|---|---|
| 调度器 | dir | 192.168.200.130 | 192.168.200.110 |
| 真实服务器1 | rs1 | 192.168.200.131 | 192.168.200.110 |
| 真实服务器2 | rs2 | 192.168.200.132 | 192.162.200.110 |
1.在dir上建立脚本文件lvs_dr.sh
# vim /usr/local/sbin/lvs_dr.sh#! /bin/bashecho 1 > /proc/sys/net/ipv4/ip_forwardipv=/usr/sbin/ipvsadmvip=192.168.200.110rs1=192.168.200.131rs2=192.168.200.132#注意这里的网卡名字ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 uproute add -host $vip dev ens33:2$ipv -C$ipv -A -t $vip:80 -s wrr$ipv -a -t $vip:80 -r $rs1:80 -g -w 1$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
给予脚本文件执行权限
# chmod +x /usr/local/sbin/lvs_dr.sh
运行脚本
# bash /usr/local/sbin/lvs_dr.sh
2.在两个rs服务器上建立脚本lvs_nat.sh
# vim /usr/local/sbin/lvs_nat.sh //rs1、rs2均执行#/bin/bashvip=192.168.200.110#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 uproute add -host $vip lo:0#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.htmlecho "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce
两个服务器脚本相同
给予执行权限
# chmod +x /usr/local/sbin/lvs_nat.sh
执行脚本
#bash /usr/local/sbin/lvs_nat.sh
3.安装nginx ,更改默认页面
# echo "rs1" > /usr/share/nginx/html/index.html //rs1上执行# echo "rs2" > /usr/local/nginx/html/index.html //rs2上执行
4.浏览器访问VIP
如果出现以下问题
SIOCADDRT: File exists
重启网卡
