LVS 服务器 知识

news/2025/9/23 20:27:34/文章来源:https://www.cnblogs.com/luowuyi/p/19107997

LVS 服务器

集群

集群分类

  • 按分发器类型分 – LVS集群 – Nginx集群 – haproxy集群 – F5集群

  • 按业务类型分 – web集群 – 数据库集群 – 缓存集群 – …

  • 按功能分类:

    • 负载均衡集群 – LBC: 分担服务的总体压力
    • 高可用集群 – HAC: 尽可能的保障服务状态的可用性
    • 高性能运算集群 – HPC: 提供单台服务器提供不了的计算能力

LVS

LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。

实现四层负载均衡,性能强大,适合日常处理大并发的大型网络架构使用;

所谓四层负载均衡 ,也就是主要通过报文中的目标地址和端口,实现负载均衡;

七层负载均衡 ,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容;

LVS四种模式

  • NAT模式:
    • 使用IP地址转换实现负载均衡;
    • 请求(入)和响应(出)都会经过负载均衡器;
    • 负载均衡器会成为一个流量的瓶颈,建议10台以内的服务器使用;
  • TUN模式:
    • 隧道模式,报文封装,实现负载均衡;
    • 请求会经过负载均衡器,响应直接返回给客户端;
    • 但是需要每台后端真实服务器都要有独立的公网IP;
    • 适合跨机房,跨网段的负载均衡;
  • DR模式(最常用):
    • 直接路由模式,使用的MAC替换,实现负载均衡;
    • 可以实现100+服务器的负载均衡;
    • 请求会经过负载均衡器,响应直接返回给客户端;
    • 不需要独立IP;
  • FULLNAT模式:多层地址转换,超大型架构的负载均衡;(基于NAT实现,LVS 本身不支持,需要额外对内核打补丁后才能使用。)
    • 通过双重地址转换实现负载均衡,客户端和后端服务器双向请求都经过负载均衡器。
    • 提供了跨网段负载均衡功能。

NAT模式(网络地址转换)—— 相当于 “代收代发点”

场景:你(客户端)要寄快递给 “北京仓库”(后端服务器),但不知道仓库地址,只能先寄到 “本地代收点”(LVS 服务器)。

  • 客户端发请求时(寄快递)
    • 源 IP:你的地址(客户端 IP)
    • 目标 IP:代收点地址(LVS 的虚拟 IP,VIP)
    • LVS 的转换:收到后,把 “目标 IP” 改成实际仓库地址(后端服务器的真实 IP,RIP),源 IP 不变(还是你的地址),然后转发给仓库。
  • 后端服务器回响应时(仓库寄回包裹)
    • 源 IP:仓库地址(RIP)
    • 目标 IP:你的地址(客户端 IP)
    • LVS 的转换:仓库必须先把包裹寄回代收点(因为仓库的网关设为 LVS),LVS 收到后,把 “源 IP” 改成自己的 VIP,再发给你。

特点:所有进出数据都经过 LVS,LVS 会改两次 IP(转发时改目标 IP,回传时改源 IP)。

DR 模式(直接路由)—— 相当于 “小区门口的指路牌”

场景:你知道小区门口有个 “总指路牌”(LVS 的 VIP),它会告诉你具体哪家快递柜(后端服务器)能收你的快递。

  • 客户端发请求时(寄快递)
    • 源 IP:你的地址(客户端 IP)
    • 目标 IP:总指路牌地址(VIP)
    • LVS 的转换:只改数据包里的 “目标 MAC 地址”(相当于告诉你快递柜的具体位置),IP 不变(源 IP 还是你,目标 IP 还是 VIP),然后直接发给后端服务器(因为服务器也认识 VIP 这个 “总地址”)。
  • 后端服务器回响应时(取件后通知你)
    • 源 IP:直接用 VIP(总指路牌地址),假装自己是 LVS
    • 目标 IP:你的地址(客户端 IP)
    • LVS 的转换:完全不经过 LVS,服务器直接把响应发给你(因为 MAC 地址已经正确指向你)。

特点:LVS 只改 MAC 地址,不改 IP;回包不经过 LVS,速度快。但要求 LVS 和服务器在同一个局域网(相当于都在一个小区里)。

TUN 模式(隧道模式)—— 相当于 “跨城专用快递通道”

场景:你在上海,要寄快递给北京的仓库,但北京的仓库藏在 “专用隧道” 后面,只有 LVS 知道怎么进去。

  • 客户端发请求时(寄快递)
    • 源 IP:你的地址(客户端 IP)
    • 目标 IP:上海的 LVS 地址(VIP)
    • LVS 的转换:把整个数据包装进一个 “隧道包裹” 里,外层目标 IP 写成北京仓库的真实 IP(RIP),内层源 IP 和目标 IP 不变(还是你和 VIP),通过隧道发给北京仓库。
  • 后端服务器回响应时(北京仓库寄回)
    • 源 IP:直接用 VIP(假装自己是上海的 LVS)
    • 目标 IP:你的地址(客户端 IP)
    • LVS 的转换:不经过 LVS,服务器直接从隧道把响应发给你。

特点:通过隧道跨网段转发,IP 基本不变(只在外层加了个隧道地址),适合服务器分散在不同城市的场景。

常用缩写解释

名称 含义
LB(Load Balancer) 负载均衡
HA(High Available) 高可用
Cluster 集群
DS(Director Server) 前端负载均衡节点服务器
RS(Real SERVER) 后端真实服务器
CIP(Client IP) 客户端IP地址
VIP(Virtual IP) 负载均衡对外提供访问的IP地址,一般负载均衡IP都会通过Viirtual IP实现高可用
RIP(RealServer IP) 负载均衡后端的真实服务器IP地址
DIP(Director IP) 主要用于和内部主机通讯的 IP 地址
LVS的安装
#检查内核是否支持 LVS
# 检查 ip_vs 内核模块是否加载
lsmod | grep ip_vs# 若未加载,手动加载(临时生效)
modprobe ip_vs
modprobe ip_vs_rr  # 加载轮询调度算法模块(根据需要加载其他算法,如 ip_vs_wrr、ip_vs_sh 等)---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#安装 ipvsadm 管理工具# centos安装 ipvsadm
yum install -y ipvsadm# 启动时自动加载 ip_vs 模块(避免重启后模块丢失)
echo "modprobe ip_vs" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local  # 确保 rc.local 可执行#对于 Ubuntu/Debian 系统
# 更新软件源
apt update# 安装 ipvsadm
apt install -y ipvsadm# 启动时自动加载 ip_vs 模块
echo "modprobe ip_vs" >> /etc/rc.local
chmod +x /etc/rc.local---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#验证安装
# 查看 ipvsadm 版本
ipvsadm --version# 查看当前 LVS 规则(初始为空)
ipvsadm -Ln
使用该命令工具来配置LVS和算法
#用法
ipvsadm     选项  服务器地址   -s  算法
ipvsadm     选项  服务器地址   -r  真是服务器地址     [工作模式]  [权重]#选项
-A      添加一个虚拟服务器
-E      编辑一个虚拟服务器
-D      删除一个虚拟服务器
-C      清空虚拟服务器列表
-R      从标准输入中还原虚拟服务器规则
-S      将虚拟服务器规则保存至标准输出
-a      添加一个真实服务器
-e      编辑一个真实服务器
-d      删除一个真实服务器
-l/L    查看分发列表
-t      使用tcp协议
-u      使用udp协议
-s      指定算法
-r      设置真实服务器的IP地址和端口信息
-g      DR模式
-i      tun模式
-m      nat模式
-w      设置真实服务器的权重
-c      查看连接状态,需要配合L使用
-n      以数字形式输出# 比如,添加一个虚拟服务器,算法为rr,所有使用tcp协议访问192.168.1.100:80的请求,最终都被NAT模式转发给了192.168.2.210和2.220的80端口
#设置入口ip(vip):
ipvsadm -A -t 192.168.1.100:80 -s rr
#设置真实IP
ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.210:80 -m
ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.220:80 -m

使用NAT模式搭建负载均衡器

环境准备

  • 三台 Ubuntu 服务器:
    • LVS 服务器:需要两块网卡,内网 IP 192.168.25.213(连接 Nginx 服务器),外网 IP 192.168.11.213(供客户端访问)
    • Nginx 服务器 1:IP 192.168.25.211,网关设置为 LVS 服务器的内网 IP 192.168.25.213
    • Nginx 服务器 2:IP 192.168.25.212,网关设置为 LVS 服务器的内网 IP 192.168.25.213
  • 客户端:与 LVS 服务器外网网卡同网段(192.168.16.x)
# 1. 安装Nginx 
sudo apt update
sudo apt install -y nginx# 2. 修改默认网页内容以区分两台服务器 看具体配置文件默认网页的位置
# 在服务器192.168.25.211上执行
echo "<h1>这是Nginx服务器 1 (192.168.25.211)</h1>" | sudo tee /data/html/index.html# 在服务器192.168.25.212上执行
echo "<h1>这是Nginx服务器 2 (192.168.25.212)</h1>" | sudo tee /data/html/index.html# 3. 启动Nginx并设置开机自启 (两台nginx机)
sudo systemctl start nginx
sudo systemctl enable nginx# 4. 设置网关为LVS服务器的内网IP(关键步骤)(两台nginx机)
sudo ip route del default
sudo ip route add default via 192.168.25.213 dev ens33  
# 假设网卡为ens33# 5. 永久设置网关(避免重启后失效)(可选)
# 先查看当前网络接口名称
INTERFACE=$(ip -br link show | awk '{print $1}' | grep -v lo | head -n 1)
# 修改netplan配置
sudo tee /etc/netplan/01-netcfg.yaml <<EOF
network:version: 2renderer: networkdethernets:$INTERFACE:addresses:- $(hostname -I | awk '{print $1}')/24gateway4: 192.168.25.213nameservers:addresses: [8.8.8.8, 8.8.4.4]
EOF
# 应用配置
sudo netplan apply# 第二部分:在LVS服务器上操作(192.168.25.213/192.168.11.213)# 1. 安装ipvsadm工具
sudo apt update
sudo apt install -y ipvsadm# 2. 加载LVS内核模块
sudo modprobe ip_vs
sudo modprobe ip_vs_rr  # 加载轮询调度算法# 3. 启用IP转发(NAT模式核心)
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward# 永久生效
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sudo sysctl -p# 4. 配置NAT转发规则(关键步骤)
# 清除现有规则
sudo iptables -F
sudo iptables -t nat -F# 添加NAT转换规则,将外网IP的80端口转发到内网
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE# 5. 配置LVS规则(NAT模式)
# 清除现有LVS规则
sudo ipvsadm -C# 添加虚拟服务,使用轮询调度算法(-t指定外网IP和端口)
sudo ipvsadm -A -t 192.168.11.213:80 -s rr# 添加后端真实服务器(NAT模式使用-m参数)
sudo ipvsadm -a -t 192.168.11.213:80 -r 192.168.25.211:80 -m
sudo ipvsadm -a -t 192.168.11.213:80 -r 192.168.25.212:80 -m# 保存配置
sudo ipvsadm -S > /etc/ipvsadm.rules# 6. 设置开机自动加载LVS配置
sudo tee -a /etc/rc.local <<EOF
ipvsadm -R < /etc/ipvsadm.rules
EOF
sudo chmod +x /etc/rc.local# 第三部分:测试负载均衡效果
在客户端电脑上打开浏览器,访问 http://192.168.11.213
# 多次刷新页面,应该能看到交替显示两台Nginx服务器的页面内容# 也可以使用curl命令测试
curl http://192.168.11.213

使用DR模式搭建负载均衡器

环境准备

  • LVS 服务器:一个基础 IP(如 192.168.25.213)
  • 虚拟 IP(VIP):192.168.25.11(所有服务器都需要绑定,LVS 绑在实际网卡,后端绑在回环网卡)
  • 后端 Nginx 服务器 1:基础 IP(如 192.168.25.211)
  • 后端 Nginx 服务器 2:基础 IP(如 192.168.25.212)
  • 客户端(测试用):192.168.25.x(任意)
# 环境说明
# 所有服务器在同一网段(192.168.25.x),均使用单网卡
# LVS服务器:192.168.25.213(单网卡,如ens33) 虚拟IP(VIP):192.168.25.11
# Nginx服务器1:192.168.25.211(单网卡)
# Nginx服务器2:192.168.25.212(单网卡)# 第一部分:后端Nginx服务器配置(211和212均执行)# 1. 安装并启动Nginx
sudo apt update
sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx# 2. 修改默认页面(区分两台服务器)
# 服务器211执行:
echo "<h1>Nginx Server 1 (192.168.25.211)</h1>" | sudo tee /var/www/html/index.nginx-debian.html# 服务器212执行:
echo "<h1>Nginx Server 2 (192.168.25.212)</h1>" | sudo tee /var/www/html/index.nginx-debian.html# 3. # 临时生效ARP抑制参数
echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 | sudo tee /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 | sudo tee /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 | sudo tee /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 | sudo tee /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 2 | sudo tee /proc/sys/net/ipv4/conf/ens33/arp_announce# 永久生效(写入sysctl.conf)
sudo tee -a /etc/sysctl.conf <<EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
EOF
# 加载配置
sudo sysctl -p# 4.# 删除旧VIP绑定(避免冲突)
sudo ip addr del 192.168.25.11/32 dev lo 2>/dev/null
# 绑定VIP到回环网卡(仅本地可见)
sudo ip addr add 192.168.25.11/32 dev lo
sudo ip link set lo up
# 验证绑定
ip addr show lo | grep 192.168.25.11# 5.拦截以VIP为源的ARP响应(避免后端对外宣告VIP)
sudo iptables -A OUTPUT -p arp --arp-op 2 -s 192.168.25.11 -j DROP
# 拦截以VIP为目标的ARP请求(避免后端响应VIP的请求)
sudo iptables -A INPUT -p arp --arp-op 1 -d 192.168.25.11 -j DROP#开机自启
sudo tee -a /etc/rc.local <<EOF
# 绑定VIP到回环网卡
ip addr add 192.168.25.11/32 dev lo
ip link set lo up
# 拦截ARP包
iptables -A OUTPUT -p arp --arp-op 2 -s 192.168.25.11 -j DROP
iptables -A INPUT -p arp --arp-op 1 -d 192.168.25.11 -j DROP
EOF# 赋予执行权限
sudo chmod +x /etc/rc.local# 6. 关闭防火墙(避免拦截)
sudo ufw disable
sudo iptables -F && sudo iptables -X# 第二部分:LVS服务器配置(192.168.25.213)# 1. 安装ipvsadm工具
sudo apt update
sudo apt install -y ipvsadm# 2. 加载LVS内核模块
# 卸载旧模块(避免冲突)
sudo modprobe -r ip_vs_rr ip_vs
# 加载LVS核心模块
sudo modprobe ip_vs
# 加载轮询调度算法模块(负载均衡核心)
sudo modprobe ip_vs_rr
# 验证模块加载(需显示ip_vs和ip_vs_rr)
lsmod | grep ip_vs# 3.# 删除旧VIP绑定
sudo ip addr del 192.168.25.11/24 dev ens33 2>/dev/null
# 绑定VIP到物理网卡(与基础IP同网段)
sudo ip addr add 192.168.25.11/24 dev ens33
sudo ip link set ens33 up
# 开启网卡混杂模式(解决虚拟机ARP广播问题)
sudo ip link set ens33 promisc on
# 验证绑定
ip addr show ens33 | grep 192.168.25.11# 4. 配置LVS DR模式规则
# 清空旧规则
sudo ipvsadm -C
# 添加虚拟服务(VIP:80,轮询算法rr)
sudo ipvsadm -A -t 192.168.25.11:80 -s rr
# 添加后端Nginx服务器(-g表示DR模式)
sudo ipvsadm -a -t 192.168.25.11:80 -r 192.168.25.211:80 -g
sudo ipvsadm -a -t 192.168.25.11:80 -r 192.168.25.212:80 -g
# 保存规则(避免重启丢失)
sudo ipvsadm -S > /etc/ipvsadm.rules
# 验证规则(需显示两台后端,Forward为Route)
sudo ipvsadm -Ln# 5. 设置开机自动加载配置
sudo tee -a /etc/rc.local <<EOF
# 加载LVS模块
modprobe ip_vs
modprobe ip_vs_rr
# 绑定VIP到网卡
ip addr add 192.168.25.11/24 dev ens33
ip link set ens33 up
ip link set ens33 promisc on
# 加载LVS规则
ipvsadm -R < /etc/ipvsadm.rules
EOFsudo chmod +x /etc/rc.local# 6. 关闭防火墙(避免拦截)
sudo ufw disable
sudo iptables -F && sudo iptables -X# 第三部分:测试负载均衡
# 在任意客户端(需与192.168.25.x网段互通)执行:
# 清除旧ARP缓存
sudo ip neigh flush allwhile true; do curl http://192.168.25.11; sleep 1; done
curl http://192.168.25.11
# 多次执行应交替显示两台Nginx服务器内容

使用TUN模式搭建负载均衡器

环境准备

核心功能
LVS 服务器 Ubuntu 20.04/22.04 物理网卡:192.168.25.213/24(公网 / 局域网 IP)隧道网卡(tun0):VIP 192.168.25.233/32 接收客户端请求,封装隧道包转发后端
Nginx 服务器 1 Ubuntu 20.04/22.04 物理网卡:192.168.25.211/24隧道网卡(tun0):VIP 192.168.25.233/32 解封装隧道包,提供 Web 服务
Nginx 服务器 2 Ubuntu 20.04/22.04 物理网卡:192.168.25.212/24隧道网卡(tun0):VIP 192.168.25.233/32 同 Nginx 服务器 1
客户端(测试用) Windows/Linux IP:192.168.11.x/24(与 LVS/Nginx 同网段) 访问 VIP(192.168.25.233)验证负载均衡
### 所有服务器初始化(通用操作)# 关闭UFW防火墙(避免拦截隧道包与80端口)
sudo ufw disable
# 清除iptables旧规则(防止冲突)
sudo iptables -F && sudo iptables -X
sudo iptables -t nat -F && sudo iptables -t nat -X
# 关闭NetworkManager(防止自动修改网络配置)
sudo systemctl stop NetworkManager && sudo systemctl disable NetworkManagersudo apt update -y && sudo apt upgrade -y
# 安装IP隧道工具(iproute2)、LVS管理工具(ipvsadm)、Nginx(Web服务)
sudo apt install -y iproute2 ipvsadm nginx
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### 后端 Nginx 服务器配置(211/212 均执行)#配置 IP 隧道(tun0)与绑定 VIP
# 1. 加载IPIP隧道内核模块(TUN模式必需)
sudo modprobe ipip
# 验证模块加载(需显示ipip)
lsmod | grep ipip# 2. 创建并配置隧道网卡tun0(绑定VIP)
# 删除旧隧道(避免冲突)
sudo ip tunnel del tun0 2>/dev/null
# 创建IPIP隧道(本地IP为后端自身物理IP)
sudo ip tunnel add tun0 mode ipip local 192.168.25.211  # 212服务器替换为192.168.25.212
# 激活隧道网卡
sudo ip link set tun0 up
# 绑定VIP到隧道网卡(/32表示仅本机使用,避免ARP广播)
sudo ip addr add 192.168.25.233/32 dev tun0
# 验证隧道与VIP(需显示tun0状态UP,且有192.168.25.233/32)
ip addr show tun0#关闭 ARP 响应(避免 VIP 冲突)# 临时生效ARP抑制参数
echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 | sudo tee /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 | sudo tee /proc/sys/net/ipv4/conf/tun0/arp_ignore
echo 2 | sudo tee /proc/sys/net/ipv4/conf/tun0/arp_announce
echo 1 | sudo tee /proc/sys/net/ipv4/conf/ens33/arp_ignore  # ens33为物理网卡名
echo 2 | sudo tee /proc/sys/net/ipv4/conf/ens33/arp_announce# 永久生效(写入sysctl.conf)
sudo tee -a /etc/sysctl.conf <<EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.tun0.arp_ignore = 1
net.ipv4.conf.tun0.arp_announce = 2
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
EOF
# 加载配置
sudo sysctl -p#配置 Nginx 服务与区分页面# 1. 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
# 验证Nginx状态(需显示active (running))
sudo systemctl status nginx# 2. 生成区分页面(便于测试负载均衡)
# Nginx服务器1(211)执行:
echo "<h1>Nginx Server 1 (192.168.25.211)</h1>" | sudo tee /var/www/html/index.nginx-debian.html
# Nginx服务器2(212)执行:
echo "<h1>Nginx Server 2 (192.168.25.212)</h1>" | sudo tee /var/www/html/index.nginx-debian.html# 3. 验证本地访问VIP(应显示自身页面)
curl http://192.168.25.233### 开机自动配置隧道与 VIP#添加以下内容(212 服务器替换 local IP 为 192.168.25.212):#!/bin/sh -e
# 加载IPIP模块
modprobe ipip
# 创建隧道网卡tun0
ip tunnel add tun0 mode ipip local 192.168.25.211
ip link set tun0 up
# 绑定VIP
ip addr add 192.168.25.233/32 dev tun0
# 启动Nginx
systemctl start nginx
exit 0#保存退出
#赋权限
sudo chmod +x /etc/rc.local
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#### LVS 服务器配置(192.168.25.213)#配置 IP 隧道(tun0)与绑定 VIP
# 1. 加载IPIP隧道内核模块
sudo modprobe ipip
# 验证模块(需显示ipip)
lsmod | grep ipip# 2. 创建并配置隧道网卡tun0(绑定VIP,对外宣告ARP)
sudo ip tunnel del tun0 2>/dev/null
# 创建IPIP隧道(本地IP为LVS物理IP)
sudo ip tunnel add tun0 mode ipip local 192.168.25.213
# 激活隧道网卡
sudo ip link set tun0 up
# 绑定VIP到隧道网卡(/24便于对外ARP宣告)
sudo ip addr add 192.168.25.233/24 dev tun0
# 验证配置(tun0状态UP,有192.168.25.233/24)
ip addr show tun0#启用 IP 转发(TUN 模式需转发隧道包)
# 临时启用IP转发
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
# 永久启用
sudo tee -a /etc/sysctl.conf <<EOF
net.ipv4.ip_forward = 1
EOF
# 加载配置
sudo sysctl -p
# 验证(应输出1)
cat /proc/sys/net/ipv4/ip_forward# 加载 LVS 内核模块与配置 TUN 模式规则# 1. 卸载旧LVS模块(避免冲突)
sudo modprobe -r ip_vs_rr ip_vs
# 2. 加载LVS核心模块与轮询调度算法(rr:轮询)
sudo modprobe ip_vs
sudo modprobe ip_vs_rr
# 验证模块(需显示ip_vs和ip_vs_rr)
lsmod | grep ip_vs# 3. 配置LVS TUN模式规则(-i表示TUN模式,指向后端物理IP)
# 清空旧规则
sudo ipvsadm -C
# 添加虚拟服务(VIP:80,轮询算法rr)
sudo ipvsadm -A -t 192.168.25.233:80 -s rr
# 添加后端Nginx服务器(-i表示TUN模式,-w 1为权重)
sudo ipvsadm -a -t 192.168.25.233:80 -r 192.168.25.211:80 -i -w 1
sudo ipvsadm -a -t 192.168.25.233:80 -r 192.168.25.212:80 -i -w 1# 4. 保存规则(避免重启丢失)
sudo ipvsadm -S > /etc/ipvsadm.rules
# 验证规则(关键:Forward为Tunnel(TUN模式标识),后端为211/212)
sudo ipvsadm -Ln# 开机自动配置隧道与 LVS 规则 # 编辑rc.local
sudo nano /etc/rc.local #!/bin/sh -e
# 加载IPIP和LVS模块
modprobe ipip
modprobe ip_vs
modprobe ip_vs_rr
# 启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# 创建隧道网卡tun0并绑定VIP
ip tunnel add tun0 mode ipip local 192.168.25.213
ip link set tun0 up
ip addr add 192.168.25.233/24 dev tun0
# 加载LVS规则
ipvsadm -R < /etc/ipvsadm.rules
exit 0#赋予权限sudo chmod +x /etc/rc.local-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------###. 客户端测试负载均衡# 客户端执行(ping VIP,应通)
ping 192.168.25.233 -c 4# 1. 浏览器测试:打开浏览器访问 http://192.168.25.233,多次刷新,应交替显示两台Nginx页面
http://192.168.25.233
# 2. 命令行测试(客户端执行,更直观):
while true; do curl http://192.168.25.233; sleep 1; done#或echo "LVS TUN模式负载均衡测试(按Ctrl+C停止):"
while true; do# 提取访问到的Nginx服务器IPSERVER_IP=$(curl -s http://192.168.25.233 | grep -oE "192.168.11.21[12]")# 显示时间与结果echo "[$(date +'%H:%M:%S')] 访问到Nginx服务器:$SERVER_IP"sleep 1
done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万网站长上海网站推广营销设计

sys.default_constraints 是 SQL Server 的系统视图&#xff0c;它包含了数据库中所有默认约束的信息。默认约束是数据库对象&#xff08;如表中的列&#xff09;的约束&#xff0c;它为列定义了一个默认值&#xff0c;当在插入新行时没有为该列提供值时&#xff0c;将使用这个…

服装行业做推广网站wordpress 图片集

本文详解的讲解了使用IDEA创建Maven项目&#xff0c;及Maven的基础入门。 1、打开IDEA&#xff0c;右上角选择File->New->Project 2、如图中所示选择Maven&#xff08;可按自己所需添加&#xff0c;否则加载时速度很慢&#xff09; 3、添加项目所需Groupld,ArtifactId,Ve…

企业网站模板psd如何制作有关西安的网站

Safari浏览器&#xff1a; 1.safari执行history.go(-1);需要添加return false; Chrome浏览器 1.Chrome浏览器要预读图片&#xff0c;需要通过对图片的预加载。注&#xff1a;预加载前一定要将<img>加入<body> 1 /* 预加载图片 node-<img> func-回调函数 *…

市场调研数据网站深圳手机网站模板

官方链接&#xff1a;空间锚点 | PICO 开发者平台 注意&#xff1a;该功能只能打包成APK在PICO 4 Ultra上真机运行&#xff0c;无法通过串流或PICO developer center在PC上运行。使用之前要开启视频透视。 在 Inspector 窗口中的 PXR_Manager (Script) 面板上&#xff0c;勾选…

江门网站建设费用关于网站开发中网站上传

在 React 中&#xff0c;props&#xff08;属性&#xff09;用于在组件之间传递数据。它是父组件向子组件传递信息的一种方式&#xff0c;通过 props&#xff0c;父组件可以向子组件传递数据、回调函数、配置项等。 注意&#xff1a; props 是只读的&#xff0c;它的值由父组件…

电商平台网站建设功能介绍网站建设有什么需求

一般的深度学习项目&#xff0c;训练时为了加快速度&#xff0c;会使用多GPU分布式训练。但在部署推理时&#xff0c;为了降低成本&#xff0c;往往使用单个GPU机器甚至嵌入式平台&#xff08;比如 NVIDIA Jetson&#xff09;进行部署&#xff0c;部署端也要有与训练时相同的深…

wordpress登录入口链接长春seo网站建设费用

JavaScript的基本数据类型 以下都是JS内置的几种类型 数据类型描述number数字&#xff0c;不区分整数和小数string字符串类型booleantrue 真, false 假undefined表示未定义的值null只有唯一的值 null&#xff0c;表示空值 number 数字类型 JavaScript 中不区分整数和浮点数&…

【有源码】基于LTM模型+大素材的电信客户流失数据分析系统-基于机器学习的电信客户流失预测与分析框架-基于客户画像的电信流失用户识别与分析平台

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

07-django+DRF项目中统一json返回格式 - 详解

07-django+DRF项目中统一json返回格式 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

[视图功能8] 图表视图:柱状图、折线图与饼图配备实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

展开描述建设一个网站的具体步骤wordpress 部分图打不开

包含观赏植物学、植物学、植物学百科图鉴等多本植物学方面的书籍学习资料。 图2、3为观赏植物学截图&#xff1b; 图4、5为植物学百科图鉴截图&#xff1b; 图6、7为植物学学习指南截图。

商城网站前期推广郴州seo推广

docker知识&#xff1a; 比如写了个项目&#xff0c;并且在本地调试没有任务问题&#xff0c;这时候你想在另外一台电脑或者服务器运行&#xff0c;那么你需要在另外一台电脑或者服务器配置相同的软件&#xff0c;比如数据库&#xff0c;web服务器&#xff0c;必要的插件和库等…

怎么wordpress下载网站做seo多少钱

为什么要搭建samba 服务器我在 windows 下安装了个虚拟机&#xff0c;然后想两边同步下资料&#xff0c;原来虚拟机是可以共享文件的&#xff0c;可是不知道什么见鬼了&#xff0c;就是不行&#xff0c;没办法了&#xff0c;我只好拿出我的杀手锏&#xff0c;安装 samba。这个在…

有限公司网站建设 中企动力佛山wordpress 缩略图变形

vue里el-formel-table实现验证规则的写法 vue里el-formel-table实现验证规则的写法 vue里el-formel-table实现验证规则的写法 重点是因为使用el-form el-table与单独使用el-form时数据不同&#xff0c;前者是对象json数组&#xff0c;后者是对象&#xff0c;导致了el-form-ite…

合肥网站建设首选 晨飞网络做暧小视频xo网站

一、JavaScript介绍 1.1 JavaScript是什么 1.1.1 JavaScript是什么&#xff1f; JavaScript是一种运行在客户端&#xff08;浏览器&#xff09;的编程语言&#xff0c;实现人机交互效果。 注意&#xff1a;HTML和CSS是标记语言。 1.1.2 作用&#xff08;做什么&#xff1f…

网站开发设计jw100一级a做爰片免费网站破解版

Python 近两年一直霸占编程语言排行榜 Top3&#xff0c;火热程度有目共睹。这也让刚入行的程序员&#xff0c;甚至 BATJ 的技术大牛&#xff0c;都意识到 Python 对于一个程序员职业发展的重要性&#xff0c;将其作为第一/第二开发语言去学习。我同事前些日子说要学Python&…

Apifox-windows-latest.exe 安装教程(附详细步骤,一键下载安装指南)​

Apifox-windows-latest.exe 安装教程(附详细步骤,一键下载安装指南)​​ 一、准备工作​下载安装包​ 你得先有这个 Apifox-windows-latest.exe文件。一般是从 Apifox 官网下载下来的,安装包下载:https://pan.qua…

软工第二次作业——个人项目

软工第二次作业——个人项目------------恢复内容开始------------ 一、作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.c…

做网站下载那个数据库好wordpress开发 文档下载

6月15日&#xff0c;一年一度的大连软交会于大连市世界博览广场盛大举行。“2017企业服务创新论坛”作为软交会最重要的组成部分之一&#xff0c;本年度以“守正出新——通往基业长青的数字化选择”为主题&#xff0c;吸引到近200位企业级服务领域的企业家及高管参加。致远互联…

开封市建设教育协会网站vue反向代理天地图地址

1 说明 此篇文章针对Chrome DevTools常用功能进行调研分析。描述了每个功能点能实现的功能、应用场景和详细操作。 2 Elements 2.1 功能 检查和实时更新页面的HTML与CSS 在 Elements 面板中检查和实时编辑 DOM 树中的任何元素。在 Styles 窗格中查看和更改应用到任何选…