环境:

 
client:windows
192.168.10.126 //物理机,模拟外网用户
 
director:rhel5.6 x64
WAN:192.168.10.208 //网卡bridged,模拟公网IP
LAN:172.16.0.100 //网卡VMnet5,内网IP
 
realserver1:rhel5.6 x64,apache
172.16.0.110 //网卡VMnet5,内网IP,apache
 
realserver2:rhel5.6 x64,apache
172.16.0.120 //网卡VMnet5,内网IP,apache
 
 
 
 
配置部分:
 
Director Server的配置,有两种方法:
通过ipvsadm命令行进行配置
通过Redhat提供的工具piranha来配置LVS
 
注:这里只使用了ipvsadm配置,详细使用参见:http://ixdba.blog.51cto.com/2895551/554799
 
 
 
1、检查环境是否支持ipvs
[root@localhost ~]# modprobe -l | grep ipvs
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_lc.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_nq.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_sed.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
/lib/modules/2.6.18-238.el5/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
后期linux版本中在预安装的内核中已将ipvs编译成模块,如果你能在目录/lib/modules/2.*.*-*/kernel/net/ipv4/ipvs中看到ip_vs_*文件,就证明你的系统已经支持ipvs。
 
 
2、安装ipvsadm
使用centos5的yum源安装
[root@localhost ~]# yum -y install ipvsadm
查看是否安装成功:
[root@localhost ~]# find / -name ipvsadm
/sbin/ipvsadm
/etc/sysconfig/ipvsadm
/etc/rc.d/init.d/ipvsadm
 
[root@localhost ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
 
 
3、配置转发
开启网卡转发功能:
LVS 在 3 种方式下均需要打开 ip forward 功能,这可以配置/etc/sysctl.conf
文件,保证其中有如下一行:
net.ipv4.ip forward = 1
执行:
sysctl -p
可以使配置立即生效,并且重启电脑或 network 服务后,此设置仍然保存。
 
配置VS服务:
[root@localhost ~]# vim /lvs.sh 
#!/bin/bash
ipvsadm -C
ipvsadm -A -t 192.168.10.208:80 -s rr
ipvsadm -a -t 192.168.10.208:80 -r 172.16.0.110:80 -m
ipvsadm -a -t 192.168.10.208:80 -r 172.16.0.120:80 -m
注:
注:最好在真实服务器性能相差不大的情况下使用rr转发方式
也可以shell下一条一条的输入,这里为了方便,管理使用脚本;
虚拟服务器IP一定是对外可见的公网IP!!!
 
 
4、启动服务
[root@localhost ~]# sh /lvs.sh 
查看是否启动成功
[root@localhost ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.10.208:http rr
  -> 172.16.0.120:http            Masq    1      0          1         
  -> 172.16.0.110:http            Masq    1      0          1
注:
sh /lvs.sh --执行后已经可以提供服务
service ipvsadm save --保存一下否则service ipvsadm stop(重启机器)后使用chkconfig自启动规则会丢失
service ipvsadm start
停止:service ipvsadm stop
重启:service ipvsadm restart
 
5、开机启动
[root@localhost ~]# chkconfig --level 3 ipvsadm on //推荐
[root@localhost ~]# echo "/bin/sh /lvs.sh" >> /etc/rc.local
 
 
6、realserver配置
两台realserver按照正常上网方式配置网卡,网关指向director的LAN口IP
 
 
7、测试
两台apache服务器分别把index.html内容设置为realserver1和realserver2
client访问director公网IP,会看到在两台realserver间来回切换(窗口中不要一直刷新,注意长连接时间)
 
查看状态:
[root@localhost ~]# ipvsadm -lcn
IPVS connection entries
pro expire state       source             virtual            destination
TCP 01:59  TIME_WAIT   192.168.10.126:59633 192.168.10.208:80  172.16.0.110:80
TCP 01:50  TIME_WAIT   192.168.10.126:59632 192.168.10.208:80  172.16.0.120:80
 
(完成)