搭建LVS DR 负载均衡
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建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上没安装的),用于后面的测试
[root@localhost ~]#yum install -y httpd
[root@localhost ~]#cd /var/www/html/
[root@localhost ~]#cd /var/www/html/
[root@localhost html]# echo 207 > index.html(207服务器上)
[root@localhost html]# echo 235 > index.html(235服务器上)
测试207和235的httpd服务
[root@localhost html]# curl 192.168.50.207:80
207
[root@localhost html]# curl 192.168.50.235:80
235
注:如果没有安装curl,用yum 安装cul工具 -
232服务器上安装ipvsadm工具(从2.4版本开始,linux内核默认支持LVS(Linux Virtual Server服务),ipvsadm是提供给用户使用Linux Virtual Server 的接口命令行工具)
[root@localhost ~]# yum -y install ipvsadm
编制脚本
[root@localhost 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中的端口相同
执行脚本:
[root@localhost lvs_dir]# sh lvs_dr.sh
保存规则(用于永久生效规则)
[root@localhost lvs_dir]# sh lvs_dr.sh
[root@localhost lvs_dir]# ipvsadm --save
查看规则:
[root@localhost 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上编写脚本
[root@localhost 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,不然不行(会导致网络不可用)。
[root@localhost lvs_dir]# sh lvs_dr_rs.sh
- 在208服务器上测试
[mysql@localhost ~]$ curl 192.168.50.252:80
207
[mysql@localhost ~]$ curl 192.168.50.252:80
235
mysql服务器的负责均衡也可以用LVS处理
参考博客: https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665
参考网络博客: https://blog.51cto.com/291268154/2488834
以上是关于搭建LVS DR 负载均衡的主要内容,如果未能解决你的问题,请参考以下文章