说明:
本文集群配置是在VMware虚拟机里实现,是对web服务进行负载均衡集群。
在实际工作中,reserver1和realserver2的web服务的网页数据是一模一样的,本文为了突出实验效果,故意设置成不同的网页,请注意,在实际工作中,一定要让realserver1和realserver2的网页数据保持一致。
共需要三台虚拟linux主机,分别命名为Director,RS1,RS2
其中director:
eth0 : 172.16.22.1 网卡选择为桥接
eth1 : 192.168.22.1 网卡选择为仅主机
RS1:
eth0 : 192.168.22.22 网卡选择为仅主机
RS2 :
eth0 : 192.168.22.23 网卡选择为仅主机
确保windows的防火墙以及虚拟机里的三台虚拟linux主机的防火墙完全关闭
具体实现过程:
1.在director主机上:
查看内核是否支持ipvs以及安装定义ipvs规则的工具:ipvsadm
# ifconfig eth0 172.16.22.1 255.255.0.0 # ifconfig eth1 192.168.22.1 255.255.255.0 # grep –i “vs” /boot/config-2.8.18-164.e15 # yum install ipvsadm –y # vim /etc/selinux/config # setenforce 0 # cat /proc/sys/net/ipv4/ip_forward #查看是否开启转发 # sysctl –w net.ipv4.ip_forward=1 2.在RS1主机上:
# ifconfig eth0 192.168.22.22 255.255.255.0 # route add default gw 192.168.22.1 # ping 192.168.22.1 # setenforce 0 # rpm –ivh httpd-2.2.3-31.el5.i386.rpm #echo “rs1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111” > /var/www/html/index.html # service httpd start # elinks -dump http://192.168.22.22 #测试本机是否可以访问web服务
说明:此时本机可以正常访问web服务。
3.在RS2主机上:
# ifconfig eth0 192.168.22.22 255.255.255.0 # route add default gw 192.168.22.1 # ping 192.168.22.1 # setenforce 0 # rpm –ivh httpd-2.2.3-31.el5.i386.rpm #echo “rs2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222” > /var/www/html/index.html # service httpd start # elinks –dump http://192.168.22.23 #测试本机是否可以访问web服务
说明:此时本机可以正常访问web服务。
4.在director主机上添加ipvs规则,实现负载均衡集群:
# ipvsadm –A –t 172.16.22.1:80 –s rr # ipvsadm –a –t 172.16.22.1:80 –r 192.168.22.22 –m # ipvsadm –a –t 172.16.22.1:80 –r 192.168.22.23 –m # # ipvsadm –L -n
注意:虚拟机的VMnet1的ip改为和RS1,RS2在一个网段即可。
如图:把方框内的IP地址改为和RS1,RS2在一个网段:
5.测试web负载均衡集群
在windows浏览器中输入:http://172.16.22.1,出现:
刷新一下,则出现:
此时我们对web服务的负载均衡集群已经实现了(由于我们设置的调度方法是rr:轮叫,所以这两个realserver的网页是交替出现的,具体调度方法请看:http://lihuan.blog.51cto.com/4391550/832560)。
补充知识:
ipvsadm 命令的常用选项:
-A 定义新的集群服务
-E 修改或编辑已存在的集群服务
-D 删除某集群服务 –D t|u|f service-address
-C 清空所有的集群服务的定义和realserver定义
-R = ipvsadm-restore 重新载入规则
-S = ipvsadm-save 保存规则
-L|l 列出当前定义的集群服务,加上-c选项,显示连接详情
-Z,--zero 清空所有服务
--status 输出统计信息
--rate 输出统计速率
例:# ipvsadm –L –n
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-04/58590.htm