负载均衡DR模式LVS搭建
1.基础准备
(1)准备3台机器
DR模式需要三台虚拟机,三台虚拟机只需要有“公网”IP,但在这种模式下又多了一个VIP。对应的机器和IP如下:
调度器dir:192.168.147.130
真实服务器rs1:192.168.147.131
真实服务器rs2:192.168.147.132
VIP:192.168.147.110
(2)改名
分发器:
Rs1:
Rs2:
(3)安装yum源
在3台虚拟机上:
[root@master ~]# mkdir /opt/centos
[root@master ~]# mount /dev/cdrom /opt/centos
mount: /dev/sr0 写保护,将以只读方式挂载
[root@master ~]# mv /etc/yum.repos.d/* /media
[root@master ~]# vi /etc/yum.repos.d/local.repo
[centos7]
name=centos7
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
2.安装ipvsadm
在dir上安装ipvsdam:
[root@dir1 ~]# yum install -y ipvsadm
还需要在三台服务器上安装net-tools,否则不能启动脚本
[root@dir1 ~]# yum install -y net-tools
3.编写脚本
我们需要在dir上编写一个shell脚本,脚本内容如下:
[root@dir1 ~]# vi /usr/local/sbin/lvs_dr.sh
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.147.110
rs1=192.168.147.131
rs2=192.168.147.132
#注意这里的网卡名字
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
两台rs上也需要编写脚本,脚本内容如下:
[root@rs1 ~]# vi /usr/local/sbin/lvs_rs.sh
#/bin/bash
vip=192.168.147.110
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
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
两台rs上添加的内容一致。
分别在三台机器上执行各自脚本:
[root@dir1 ~]# bash /usr/local/sbin/lvs_dr.sh
[root@rs1 ~]# bash /usr/local/sbin/lvs_rs.sh
[root@rs2 ~]# bash /usr/local/sbin/lvs_rs.sh
执行完3个脚本后,就可以测试了。
4.测试
在httpd服务器创建文件测试:
[root@rs1 ~]# yum install -y httpd && echo "rs1" >> /var/www/html/index.html && systemctl restart httpd
[root@rs2 ~]# yum install -y httpd && echo "rs2" >> /var/www/html/index.html && systemctl restart httpd
因为VIP在三台机器上都有设置。所以只能用浏览器来测试结果,如下图所示:
5.总结
●在dir上不仅要安装ipvsadm,三台服务器还要同时安装net-tools,否则配置完脚本缺少命令。
●在rs1和rs2上要提前安装并配置好nginx,否则真实服务器与vip无法连接。
●测试的时候要关闭131上的nginx或132上的nginx,再测试。
●关闭nginx
(1)进入nginx目录
cd /usr/local/nginx/sbin
(2)快速停止nginx
./nginx -s stop
(3)完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
./nginx -s quit
标签:LVS,DR,192.168,nginx,vip,Linux,net,root,rs1 From: https://blog.csdn.net/Gao0Yuu/article/details/142484930