lvs-dr原理
lvs-nat原理:
当我们的网站流量越来越大时一台web服务器已经无法满足需求了,我们该如何解决呢??
把服务器连接起来实现负载均衡或许是个不错的办法。。
下面我就来看看怎么实现吧。当然这只是个经典版的实验。不足之处请多多指教。
本实验使用了4台机器分别:
分发器:super63
realserver:super65、super66
客户机:super64
实验模型图例:
其中上图中VIP模拟公网IP可以和外面客户机通信。
原理简介:当客户机请求vip时,请求由路由器转发到分发器,再由分发器通过某种调度算法和mac转发给realserver实现负载均衡,realserver接到转发报文请求后再通过自身回环口vip向客户转发内容,其转发路径直接从某个出口路由到达客户机不经过分发器。
配置super63
配置IP
DIP eth0 192.168.1.70
VIP eth0:1 192.168.1.63
网关指向192.168.1.1
配置LVS-DR 规则(实验以轮询rr的方式)
[[email protected] network-scripts]# ipvsadm -A -t 192.168.1.63:80 -s rr
[[email protected] network-scripts]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.65 -g
[[email protected] network-scripts]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.66 –g
[[email protected] network-scripts]# ipvsadm -L -n #查看
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.63:80 rr
-> 192.168.1.65:80 Route 1 0 0
-> 192.168.1.66:80 Route 1 0 0
配置super65
配置IP
etho 192.168.1.65/24
lo:1 192.168.1.63 255.255.255.255
网关指向192.168.1.1
关闭ARP转发 #使机器只响应eth0
[[email protected]~]#echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
[[email protected] ~]#echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
写入配置文件
[[email protected] network-scripts]# vim /etc/sysctl.conf
#尾部追加
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
[[email protected] network-scripts]# sysctl -p
安装apache在apache服务器主页上写入内容便于测试
[[email protected] ~# ]echo "192.168.1.65" > /var/www/html/index.html
配置super66 #方法与super65原理一样
测试:
super64模拟客户机访问vip
[[email protected] ~]# elinks 192.168.1.63 --dump
192.168.1.65
[[email protected] ~]# elinks 192.168.1.63 --dump
192.168.1.66
[[email protected] ~]# elinks 192.168.1.63 --dump
192.168.1.65
可以看到每次访问vip时访问了不同页面,负载均衡实现。