机器
192.168.64.135 前端调度器
192.168.64.136 真实服务器
192.168.64.140 真实服务器
192.168.64.137 用户访问端
与LVS不可分割的一个命令工具 ipvsadm
ipvsadm用法
-A #增加一台新的虚拟服务器。
-E #编辑一条虚拟服务器记录。
-D #删除一条虚拟服务器记录。
-C #清除内核虚拟服务器表中的所有记录。
-R #恢复虚拟服务器规则
-S #保存虚拟服务器规则,输出为-R 选项可读的格式
-a #虚拟服务器中增加一台新的真实服务器
-e #编辑一条真实服务器记录
-d #删除一条真实服务器记录
--set tcp tcpfin udp #设置连接超时值
-h --help #显示帮助信息
#其他的选项:
-t tcp 的服务[vip:port]
-u udp 的服务[vip:port]
-s #使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.
-r #真实的服务器
-g #指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
-i #指定LVS 的工作模式为隧道模式
-m #指定LVS 的工作模式为NAT 模式
-w #真实服务器的权值
-c #显示LVS 目前的连接 如:ipvsadm -L -c
--timeout #显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
环境搭建
135机器安装
yum -y install ipvsadm.x86_64
136 140 安装httpd 关闭防火墙
使用脚本来配置吧
135机器脚本
点击查看代码
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.64.200
rs1=192.168.64.136
rs2=192.168.64.140
#注意这里的网卡名字
ifdown ens32
ifup ens32
ifconfig ens32:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens32:2
$ipv -C
$ipv -A -t $vip:80 -s rr
#端口号定为80
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
136 140 机器脚本
点击查看代码
#/bin/bash
vip=192.168.64.200 #虚拟ip
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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
给脚本添加执行权限
给脚本添加执行权限
执行脚本 开始测试
137机器测试
脚本中用的是rr轮询方式
去浏览器测试一下吧
发现并不轮询 不要急 这是因为
persisten timeout 持久化
我们查看一下持久化设置
为了测试 我们修改一下这个属性吧
当ipvsadm -Lnc 执行后 为空 就可以去浏览器再测试
记得是刷新 不是回车
记得是刷新 不是回车
就能看到明显效果了
而实际配置中还是按照默认配置
完成了