lvs-dr实验搭建

环境:

lvs director:    10.57.220.198:80    Ubuntu 10.04 LTS  vmware 虚拟机

real server1 10.57.220.195:80    Ubuntu 11.10  nginx服务器

real server2 10.57.220.20:80     Ubuntu 11.10  nginx服务器

虚拟ip(vip):10.57.220.144

1、下载 ipvsadm

分别在3台机器上下载

apt-get install ipvsadm

2、ipvsadm设置

dpkg-reconfigure ipvsadm

第一个选no       (automatically load ipvs rules on boot?)

第二个选none

3、配置脚本

1)director脚本

lvs-dr.sh

#!/bin/bash

echo "1" > /proc/sys/net/ipv4/ip_forward

IPVSADM='/sbin/ipvsadm'

VIP=10.57.220.144

RS1=10.57.220.20

RS2=10.57.220.195

ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up

route add -host $VIP dev eth0:1

$IPVSADM -C

$IPVSADM -A -t $VIP:81 -s rr

$IPVSADM -a -t $VIP:81 -r $RS1:81 -g -w 1

$IPVSADM -a -t $VIP:81 -r $RS2:81 -g -w 1

chmod 777 lvs-dr.sh

2)realserver脚本

所有realserver相同

lvs-rs.sh

#!/bin/bash

#Description : RealServer

#Write by:hugwww

#Last Modefiy:2009.1.24

VIP=10.57.220.144

/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

/sbin/route add -host $VIP dev lo:0

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

sysctl -p

#end

chmod 777 lvs-rs.sh

4、执行、测试

分别在三个机器上执行相应脚本

注意事先启动。nginx 服务器

firfox访问  10.57.220.144:81

可用ipvsadm -ln查看状态

5、注意问题

防火墙要关闭,linux下是iptables

各服务器 端口一致,否则不通。比如都是80端口,不能有的是80,有的是81。

本案例中vip和真实ip都是在同一网段,vip可以和real ip不同网段,可参考章博士的回答  http://zh.linuxvirtualserver.org/node/155。负载调度器只要有一个网口和真实服务器是通过不分段的网络连接起来就可以。真实服务器可以通过自己的路由器将响应报文发送给客户。

猜你喜欢

转载自q16964777.iteye.com/blog/2262123