【LVS】负载均衡群集部署(DR模式)

部署前IP分配

DR服务器:192.168.166.101 vip:192.168.166.100

Web服务器1:192.168.166.104 vip:192.168.166.100

Web服务器2:192.168.166.107 vip:192.168.166.100

NFS服务器:192.168.166.108

一、部署NFS服务器(192.168.166.108)

1、安装nfs

复制代码
systemctl stop ufw
systemctl disable ufw
apt install -y nfs-kernel-server
systemctl status nfs-kernel-server

2、准备两个共享目录

复制代码
cd /opt
mkdir  xy1  xy2
vim /etc/exports

添加以下配置:
/opt/xy1 *(rw,sync,no_subtree_check,no_root_squash)
/opt/xy2 192.168.166.0/24(rw,sync,no_subtree_check,no_root_squash)

3、向外发布

复制代码
exportfs -arv

4、准备测试文件

复制代码
 echo '<h1>this is xy1 test web</h1>' > xy1/test.html
 echo '<h1>this is xy2 test web</h1>' > xy2/test.html

二、Web服务器部署nfs

1、安装上传工具

复制代码
systemctl stop ufw
systemctl disable ufw
apt install -y nfs-common
apt install lrzsz
上传nginx_1.24.0-1~jammy_amd64.deb
dpkg -i nginx_1.24.0-1~jammy_amd64.deb

另一台服务器上做相同操作。

2、修改配置文件

复制代码
cd /etc/nginx/conf.d

vim default.conf

修改:

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

为

    location / {
        root   /var/www/html;
        index  index.html index.htm;
    }

3、测试与nfs服务器连通性

复制代码
mkdir -p /var/www/html
showmount -e 192.168.166.108

4、挂载

将nfs服务器的xy1挂载到ubuntu4的/var/www/html文件夹下

复制代码
mount 192.168.166.108:/opt/xy1 /var/www/html

将共享文件夹的目录下的文件复制过来

复制代码
cp /usr/share/nginx/html/* ./

在另一台虚拟机上进行同样操作到连通nfs服务器

将xy2挂载到/var/www/html目录下

同样将共享文件夹的目录下的文件复制过来

复制代码
cp /usr/share/nginx/html/* ./

5、创建一个新的网卡文件

复制代码
cd /etc/netplan/

touch 99-lo-vip.yaml

vim 99-lo-vip.yaml 

network:
  ethernets:
    lo:
      addresses:
      - 192.168.166.100/32
    version: 2
复制代码
netplan apply

ip a

6、给两台主机添加内核参数

复制代码
vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1			#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2		#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p

在另一台主机上进行相同操作

复制代码
#启动nginx

systemctl start nginx

systemctl enable nginx

df -hT

确认是否已经将共享存储的目录挂载过来

7、登陆网页测试

三、配置负载调度器

(ubuntu1:192.168.166.101)

1、加载 ip_vs 模块,安装ipvsadm工具

复制代码
systemctl stop ufw
systemctl disable ufw

modprobe ip_vs
cat /proc/net/ip_vs
复制代码
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
lsmod | grep ip_vs

apt update
apt -y install ipvsadm

2、配置虚拟 IP 地址(VIP:192.168.166.100)

复制代码
#临时生效(重启失效)
ip addr add 192.168.166.100/24 dev ens33 label ens33:0

#永久生效
vim /etc/netplan/XXX.yaml
network:
 version: 2 
 ethernets:
   ens33:
     addresses:

​        192.168.80.10/24 
​		192.168.166.100/32  # 添加VIP 

netplan apply 

3、启用IP转发

复制代码
#临时生效
sysctl -w net.ipv4.ip_forward=1

#永久生效
echo "net.ipv4.ip_forward=1" | tee -a /etc/sysctl.conf

或者

vim /etc/sysctl.conf

添加net.ipv4.ip_forward=1

sysctl -p

4、配置负载均衡规则

复制代码
#添加虚拟服务
ipvsadm -A -t 192.168.166.100:80 -s wrr 

#添加真实服务器(-g表示DR模式)
ipvsadm -a -t 192.168.166.100:80 -r 192.168.166.104:80 -g -w 1
ipvsadm -a -t 192.168.166.100:80 -r 192.168.166.107:80 -g -w 1

#查看规则 
ipvsadm -Ln 

重新打开一个主机用于测试(ubuntu3:192.168.166.103)

5、验证ARP抑制

复制代码
#在客户端上执行,应只能看到Director的MAC地址响应VIP
apt install -y arping
arping -I ens33 192.168.166.100

6、安装Nginx

复制代码
apt install -y nginx nfs-common

测试 LVS 群集

在客户端使用浏览器访问 http://192.168.166.100/test.html

观察请求分发情况

复制代码
ipvsadm -Ln --stats

7、测试实现负载均衡

相关推荐
ulias2121 天前
Linux系统中的权限问题
linux·运维·服务器
青花瓷1 天前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
Dream of maid1 天前
Linux(下)
linux·运维·服务器
齐鲁大虾1 天前
统信系统UOS常用命令集
linux·运维·服务器
专吃海绵宝宝菠萝屋的派大星1 天前
使用Dify对接自己开发的mcp
java·服务器·前端
大数据新鸟1 天前
操作系统之虚拟内存
java·服务器·网络
来一颗砂糖橘1 天前
负载均衡的多维深度解析
运维·负载均衡
楠奕1 天前
CentOS7安装GoldenDB单机搭建及常见报错解决方案
linux·运维·服务器
GCTTTTTT1 天前
远程服务器走本地代理
运维·服务器
剑锋所指,所向披靡!1 天前
Linux常用指令(2)
linux·运维·服务器