环境介绍
- 一台windows名为W1,三台虚拟机分别为LVS-Server,Real-Web-Server1,Real-Web-Server2
- 模拟W1为外网客户端,访问LVS-Server服务器,LVS-Server请求响应分发给两台真实的WEB服务器Real-Web-Server1,Real-Web-Server2。
- LVS-Server、LVS-Server、Real-Web-Server1、Real-Web-Server2的eth0网卡为均选择为同一网卡。
搭建步骤
- IP设置
W1的虚拟网卡Vmware1IP设置为200.168.10.4,子网掩码255.255.255.0
LVS-Server设置双IP,eth0 eth0:0,eth0的IP设置为200.168.10.1,子网掩码255.255.255.0,eth0:0的IP设置为200.168.10.10,子网掩码255.255.255.255并添加路由 route add -host 200.168.10.10 dev eth0:0
Real-Web-Server1的IP设置为200.168.10.2,子网掩码255.255.255.0,在回环网卡lo设置IP:200.168.10.10 ,子网掩码255.255.255.255,并添加路由 route add -host 200.168.10.10 dev lo0:0
Real-Web-Server1的IP设置为200.168.10.3,子网掩码255.255.255.0,在回环网卡lo设置IP:200.168.10.10 ,子网掩码255.255.255.255,并添加路由 route add -host 200.168.10.10 dev lo0:0
也可以通过修改配置文件设置,这里就不一一介绍,可查看相关资料设置。// LVS-Server IP设置 # ifconfig eth0 200.168.10.1 netmask 255.255.255.0 # ifconfig eth0:0 200.168.10.10 netmask 255.255.255.255 // 添加路由 # route add -host 200.168.10.10 dev eth0:0 // Real-Web-Server1 IP设置 # ifconfig eth0 200.168.10.2 netmask 255.255.255.0 # ifconfig lo:0 200.168.10.10 netmask 255.255.255.255 // 添加路由 # route add -host 200.168.10.10 dev lo:0 // Real-Web-Server2 IP设置 # ifconfig eth0 200.168.10.3 netmask 255.255.255.0 # ifconfig lo:0 200.168.10.10 netmask 255.255.255.255 // 添加路由 # route add -host 200.168.10.10 dev lo:0
- 关闭虚拟机的防火墙,以防影响服务器的响应。
# service network status # service network stop
- LVS-Server服务器脚本设置
开启路由功能:echo 1 >/proc/sys/net/ipv4/ip_forward
编写shell脚本 lvs.sh
给shell脚本设置执行权限#!/bin/bash #lsv.sh #清除LVS-Server调度表中的所有记录 ipvsadm -C #增加一个带有调度算法的转换表,-rr 轮叫模式 ipvsadm -At 200.168.10.10:80 -s rr #增加轮叫的服务器 -g dr模式 ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -g ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -g
#chmod a+x lvs.sh
- Real-Web-Server1,Real-Web-Server2服务器脚本设置
给shell脚本设置执行权限#!/bin/bash #arp.sh echo 1 >/pro/sys/net/ipv4/conf/lo/arp_ignore echo 1 >/pro/sys/net/ipv4/conf/lo/arp_announce echo 2 >/pro/sys/net/ipv4/conf/all/arp_ignore echo 2 >/pro/sys/net/ipv4/conf/all/arp_announce
#chmod a+x arp.sh
为方便测试,给Real-Web-Server1,Real-Web-Server2两台服务器的网站根目录编写不同的页面,我写的是各自服务器的ip。
Real-Web-Server1网站根目录编写页面index.html,内容为200.168.10.2
Real-Web-Server2网站根目录编写页面index.html,内容为200.168.10.3 - 运行脚本
运行LVS-Server服务器上的lvs.sh脚本
运行Real-Web-Server1服务器上的arp.sh脚本
运行Real-Web-Server2服务器上的arp.sh脚本 - 在W1的浏览器上访问200.168.10.10
每隔五秒左右刷新,页面呈现不同的IP,则设置成功。
如果没有出现理想效果,请检查 1.各服务器防火墙是否处于关闭状。2.web服务是否开启。3.W1、LVS-Server,Real-Web-Server1,Real-Web-Server2之间能否ping通。4.检查各服务器的IP是否设置正确。
相关资料:
LVS负载均衡(LVS简介、三种工作模式、十种调度算法)
linux安装ipvsadm-1.24
LVS负载均衡-三种模式(Nat模式)
总结
如果您对这个文章有任何异议,那么请在文章评论处写上你的评论。
愿大家都能在编程这条路,越走越远。
拥有诚实,就舍弃了虚伪;拥有充实,就舍弃了无聊;拥有踏实,就舍弃了浮躁。不论是有意的丢弃,还是意外的失去,只要曾经真实的拥有,在一些时候,大度的舍弃不也是一种境界吗?