IP | 主机名 | 节点类型 | VIP |
---|---|---|---|
192.168.100.60 | dir | 调度器 | 192.168.100.160 |
192.168.100.61 | server1 | web服务器 | 无 |
192.168.100.62 | server2 | web服务器 | 无 |
建议关闭防火墙和selinux
相关内容推荐
搭建
一、调度器上安装ipvsadm
# yum -y install ipvsadm
二、在调度器新建一个脚本文件,写入内容
[root@localhost ~]# vim /usr/local/sbin/lvs_dr.sh
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.100.160
rs1=192.168.100.61
rs2=192.168.100.62
##请注意下面ifconfig后面的网卡名,请按照实际情况进行更改
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
##下面行末的网卡名以实际情况更改
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
三、在两台wen服务器上创建脚本文件,写入内容
(两台服务器的内容一样,注意网卡名,版本不一样可能会有所区别,下面以server1为例)
[root@server1 ~]# vim /usr/local/sbin/lv_dr_rs1.sh
#!/bin/bash
vip=192.168.100.160
##请注意下面ifconfig后面的网卡名,请按照实际情况进行更改
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
##下面行末的网卡名以实际情况更改
route add -host $vip 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
四、执行脚本,创建环境
(需要注意的是,创建的环境是临时环境,重启机子后就会消失需要重新执行脚本)
server1
[root@server1 ~]# bash /usr/local/sbin/lv_dr_rs1.sh
server2
[root@server2 ~]# bash /usr/local/sbin/lv_dr_rs2.sh
dir
[root@dir ~]# bash /usr/local/sbin/lvs_dr.sh
五、缩短链接超时时间(方便之后的测试)
# ipvsadm --set 1 2 1
#ipvsadm --set tcp tcpfin udp
针对链接的超时时间。以tcp为例,一个tcp连接建立后会传输N个报文, 当两个报文相继到达的时间差在超时时间内就会被转发到同一台realserver上进行处理, 若时间差大于超时时间就会根据调度算法重新选择realserver,连接就有可能出现异常。 ipvs是根据client IP 和 client port来识别是不是同一个链接发的报文
测试
在winsdows的浏览器上访问VIP可以访问到两台web服务器
(此前我已经把两台web服务器的默认访问页设置为它们的主机名)
点击刷新可以跳转到另一台web服务器
(如果没成功可以清一下浏览器的缓存,再进行重试)
在调度器上使用命令可以看到使用VIP可以访问到的IP和连接数等信息