zllbirdonland 2020-04-20
三台服务器都关闭防火墙和selinux(systemctl stop firewalld && setenforce 0)
注:这里仅仅是测试,所以都是暂时关闭,重启将失效
二 服务器设置:
192.168.50.207和192.168.50.235上安装httpd服务(232上没安装的),用于后面的测试
[ ~]#yum install -y httpd
[ ~]#cd /var/www/html/
[ ~]#cd /var/www/html/
[ html]# echo 207 > index.html(207服务器上)
[ html]# echo 235 > index.html(235服务器上)
测试207和235的httpd服务
[ html]# curl 192.168.50.207:80
207
[ html]# curl 192.168.50.235:80
235
注:如果没有安装curl,用yum 安装cul工具
232服务器上安装ipvsadm工具(从2.4版本开始,linux内核默认支持LVS(Linux Virtual Server服务),ipvsadm是提供给用户使用Linux Virtual Server 的接口命令行工具)
[ ~]# yum -y install ipvsadm
编制脚本
[ lvs_dir]# cat lvs_dr.sh
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.50.252
rs1=192.168.50.207
rs2=192.168.50.235
ifconfig ens160:0 down
ifconfig ens160:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens160:0
$ipv -C
$ipv -A -t 192.168.50.252:80 -s rr
$ipv -a -t $vip:80 -r 192.168.50.207:80 -g -w 1
$ipv -a -t 192.168.50.252:80 -r 192.168.50.235:80 -g -w 1
注: 本人测试中,这里真实服务器的端口设置是无效的。即使vip的端口号和real server的端口号设置不同,实际查看规则时,还是看到real server的端口跟vip中的端口相同
执行脚本:
[ lvs_dir]# sh lvs_dr.sh
保存规则(用于永久生效规则)
[ lvs_dir]# sh lvs_dr.sh
[ lvs_dir]# ipvsadm --save
查看规则:
[ lvs_dir]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.50.252:80 rr
-> 192.168.50.207:80 Route 1 0 0
-> 192.168.50.235:80 Route 1 0 0
[ lvs_dir]# sh lvs_dr_rs.sh
mysql服务器的负责均衡也可以用LVS处理
参考博客: https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665
参考网络博客: https://blog.51cto.com/291268154/2488834