搭建LVS DR 负载均衡
director server: 192.168.50.232
VIP(virtual ip): 192.168.50.252
real server 1: 192.168.50.207
real server 2: 192.168.50.235
测试服务器: 192.168.50.208
三台服务器都关闭防火墙和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- 207和235上编写脚本
[ lvs_dir]# cat lvs_dr_rs.sh
#!/bin/bash
vip=192.168.50.252
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
注意:这里子网掩码确实是4个255,不然不行(会导致网络不可用)。
[ lvs_dir]# sh lvs_dr_rs.sh
- 在208服务器上测试
[ ~]$ curl 192.168.50.252:80
207
[ ~]$ curl 192.168.50.252:80
235
mysql服务器的负责均衡也可以用LVS处理
参考博客: https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665
参考网络博客: https://blog.51cto.com/291268154/2488834