基于LVS负载均衡练习
对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势。
NAT模式,全称是网络地址转换模式。NAT模式下,负载均衡器(Director)会修改请求和响应的IP地址。客户端的请求先到达Director,Director将请求的目标地址改成后端真实服务器的地址,然后转发给后端服务器。后端服务器处理完请求后,将响应返回给Director,Director再将响应的源地址改回自己的虚拟IP(VIP),最后返回给客户端。这样的话,对于客户端来说,它只知道Director的地址,不知道后端服务器的存在。
DR模式,即直接路由模式。DR模式下,Director和后端服务器都配置了同一个虚拟IP地址。当客户端请求到达Director时,Director通过修改请求的目标MAC地址,将请求转发给选中的后端服务器。后端服务器处理请求后,直接通过自己的网络接口将响应返回给客户端,而不需要经过Director。这样响应数据可以直接从服务器到客户端,减少了Director的负担。
1. NAT模式(Network Address Translation)
-
优势:
-
网络拓扑灵活:
-
后端服务器(Real Server)可使用私有IP地址,无需暴露公网IP。
-
支持跨子网部署,Real Server可位于不同网络环境中(如云服务器跨可用区)。
-
-
配置简单:
-
Real Server无需特殊配置,只需设置默认网关为Director(负载均衡器)。
-
无需修改Real Server的内核参数(如ARP抑制)。
-
-
安全性较高:
-
Real Server隐藏在Director后,对外不可见,避免直接暴露于公网。
-
-
支持端口映射:
-
Director可修改目标端口,实现灵活的端口转换(如将80端口请求转发到后端8080端口)。
-
-
-
适用场景:
-
中小规模流量场景。
-
需要跨子网或混合云部署。
-
对后端服务器安全性要求较高。
-
2. DR模式(Direct Routing)
-
优势:
-
高性能与低延迟:
-
响应数据直接由Real Server返回客户端,无需经过Director,避免带宽瓶颈。
-
吞吐量高,适合高并发、大流量场景(如视频流、大规模Web应用)。
-
-
扩展性强:
-
Director仅处理入站请求,后端服务器数量增加时性能影响较小。
-
-
资源利用率高:
-
Real Server直接使用公网带宽,减轻Director的网络负载。
-
-
-
适用场景:
-
高并发、大流量场景(如电商大促、在线游戏)。
-
对吞吐量和延迟敏感的服务。
-
需充分利用Real Server的公网带宽。
-
关键对比总结
| 特性 | NAT模式 | DR模式 |
|---|---|---|
| 网络拓扑 | 支持跨子网,Real Server可私有IP | 必须同一局域网,Real Server需公网IP |
| 性能 | 受限于Director的带宽和处理能力 | 高性能,Real Server直接响应客户端 |
| 配置复杂度 | 简单(Real Server无需特殊配置) | 复杂(需配置ARP抑制、VIP绑定等) |
| 安全性 | 高(Real Server隐藏) | 较低(Real Server暴露公网IP) |
| 端口映射 | 支持 | 不支持 |
| 适用规模 | 中小规模 | 大规模、高并发 |
选择建议
-
NAT模式:适合网络环境复杂、对安全性要求高、流量适中的场景。
-
DR模式:适合追求极致性能、大流量且网络环境可控的场景。
实际部署中,可结合两者优势,例如在DR模式下通过Keepalived实现Director的高可用,进一步提升系统可靠性。
基于 openEuler 构建 LVS-DR 群集
1. 环境准备
-
操作系统:openEuler 20.03 LTS 或更高版本。
-
网络拓扑:
-
Director:1台,配置双网卡(一个公网IP,一个内网IP)。
-
Real Server:至少2台,配置内网IP。
-
客户端:1台,用于测试。
-
-
IP规划:
-
Director:
-
公网IP(VIP):
192.168.234.10 -
内网IP(DIP):192.168.234.11
-
-
Real Server 1:
-
内网IP(RIP):192.168.234.14
-
-
Real Server 2:
-
内网IP(RIP):
192.168.234.15
-
-
客户端:
-
公网IP:
192.168.234.13
-
-
配置 Real Server(后端服务器)
在 Real Server 上启动 Web 服务
在两个Real Server上安装并启动nginx服务:
yum install nginx -y systemctl start nginx systemctl enable nginx
在Real Server 1上创建测试页面
echo "web test page,ip is `hostname -I`" > /usr/share/nginx/html/index.html![]()
在Real Server 2上创建测试页面
echo "web test page,ip is `hostname -I`" > /usr/share/nginx/html/index.html

在两个Real Server上都绑定VIP
nmcli connection add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.234.10/32
ip address查看:

配置 ARP 抑制
防止Real Server响应VIP的ARP请求:
vim /etc/sysctl.conf,添加以下内容:
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
应用配置:
sysctl -p
配置 Director(负载均衡器)
1.安装 LVS 工具
yum install ipvsadm -y
2.配置 VIP
nmcli connection add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.234.10/32
3. 配置 LVS 规则
使用 ipvsadm 配置负载均衡规则:
ipvsadm -A -t 192.168.234.10:80 -s rr
ipvsadm -a -t 192.168.234.10:80 -r 192.168.234.14:80 -g
ipvsadm -a -t 192.168.234.10:80 -r 192.168.234.15:80 -g
4.在Director上查看LVS状态:
ipvsadm -Ln

5.从客户端访问 VIP
在客户端使用 curl 或浏览器访问VIP:

相关文章:
基于LVS负载均衡练习
对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势。 NAT模式,全称是网络地址转换模式。NAT模式下,负载均衡器(Director)会修改请求和响应的IP地址。客户端的请求先到达Director,Director将请…...
在 rtthread中,rt_list_entry (rt_container_of) 已知结构体成员的地址,反推出结构体的首地址
rt_list_entry (rt_container_of)宏定义: /*** rt_container_of - return the start address of struct type, while ptr is the* member of struct type.*/ #define rt_container_of(ptr, type, member) \((type *)((char *)(ptr) - (unsigned long)(&((type *…...
数组_二分查找
数组_二分查找 一、leetcode-572二、题解1.代码2.思考 一、leetcode-572 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则…...
VUE环境搭建
node.js安装 node npm – node Package Management 安装完成后,需要设置: npm config set prefix "D:\nodejs"注意:“D:\nodejs” 此处为自己安装的node.js路径。管理员身份运行 切换镜像源 npm config set registry https://r…...
MATLAB图像处理:Sobel、Roberts、Canny等边缘检测算子
边缘是图像中像素值剧烈变化的区域,反映了目标的轮廓、纹理等关键信息。边缘检测是图像分割、目标识别等任务的基础。本文将系统解析 六种经典边缘检测算子 的数学原理、实现方法及适用场景,并给出完整的MATLAB代码示例和对比分析。 1. 边缘检测基础 1…...
C++ 标准库常见容器
容器类型类型分类特点示例代码vector序列容器动态数组,支持随机访问,末尾操作效率高std::vector v {1, 2, 3}; v.push_back(4);deque序列容器双端队列,支持两端操作和随机访问std::deque d {1, 2, 3}; d.push_front(0);list序列容器双向链表…...
Ubuntu+Laravel+MQ+Supervisor队列系统搭建流程
1、安装MQ环境 sudo apt install -y rabbitmq-server sudo systemctl enable rabbitmq-server --now 2、进入laravel项目,安装MQ队列驱动 composer require vladimir-yuldashev/laravel-queue-rabbitmq 3、配置 .env QUEUE_CONNECTIONrabbitmq RABBITMQ_HOST12…...
力扣100. 相同的树(利用分解思想解决)
Problem: 100. 相同的树 文章目录 题目描述思路Code 题目描述 思路 题目要求判断两个二叉树是否完全相同,而此要求可以利用问题分解的思想解决,即判断当前节点的左右子树是否完全相同,而在二叉树问题分解的一般题目中均会带有返回值ÿ…...
全面了解HTTP(一)
全面了解HTTP(二)-CSDN博客 web及网络基础 使用HTTP协议访问web: HTTP: 网络基础TCP/IP 与HTTP关系密切的协议:IP,TCP,DNS 负责域名解析的DNS服务 各种协议与HTTP协议的关系 URI和URL 简单的HTTP协议 HTTP协议用于客户端和服…...
element-ui时间组件同一个月内选择/30天内选择
element-ui时间组件同一个月内选择/30天内选择 同一个月 <el-date-picker v-model"time" type"datetimerange"range-separator"至" start-placeholder"开始时间"value-format"timestamp" :picker-options"pickerO…...
NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)
循环嵌套 循环嵌套的使⽤ while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如: 写⼀个代码,打印⼀个乘法⼝…...
深入浅出Java反射:掌握动态编程的艺术
小程一言反射何为反射反射核心类反射的基本使用获取Class对象创建对象调用方法访问字段 示例程序应用场景优缺点分析优点缺点 注意 再深入一些反射与泛型反射与注解反射与动态代理反射与类加载器 结语 小程一言 本专栏是对Java知识点的总结。在学习Java的过程中,学习…...
大模型被偷家?CNN结合多模态!
2025深度学习发论文&模型涨点之—— CNN多模态 卷积神经网络是一种特殊类型的神经网络,其主要结构包括卷积层、池化层、全连接层和输出层。卷积层通过卷积操作学习图像的特征,池化层通过下采样操作减少参数数量,全连接层和输出层通过分类…...
UI自动化测试的优缺点?
优点 • 提高测试效率:可以快速地重复执行测试用例。例如,对于一个有大量表单需要验证的网页应用,自动化测试可以在短时间内完成多次输入检查,而手动测试则会花费大量时间。 • 保证测试一致性:每次执行测试的步骤和…...
在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库
在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库有一些特殊的考虑,因为数据库通常运行在容器中,并且数据存储在卷(如 PersistentVolume)中。你可以通过几种方式在外部备份 PostgreSQL 数据库,下面是一些…...
机器视觉中的3d和2d的区别
在机器视觉中,3D和2D的主要区别体现在数据的维度、处理方式及应用场景上。以下是具体对比: 数据维度 2D视觉 :处理二维图像,仅包含宽度和高度信息,通常以像素矩阵表示。 3D视觉 :处理三维数据,…...
exr 格式下 全景图(经纬图、panorama)转 cubemap
先上效果 (X, -X, Y, -Y, Z, -Z) 下载 exr 经纬图 笔者用的这张:https://polyhaven.com/a/kloofendal_48d_partly_cloudy_puresky 使用 Openexr 的 exrenvmap 工具 下载 我 build 了一份 3.3.2 版本的,免积分下载。 https:/…...
STM32 ADC介绍(硬件原理篇)
目录 背景 AD转换器 采样与保持 量化 编码 AD转换器转换原理 DA转换原理 AD转换原理 背景 在数字系统的广泛应用中,用数字系统处理模拟量的情况十分普遍,因此引入了模拟信号和数字信号的接口问题。为了解决这一问题,首先利用模数转换…...
snort3.0 获取注册规则(19000多条)
面对生活中的手机、电脑网络监控,很多人都是束手无策的,只不过雁过留声风过留痕,黑客路过就会留下入侵痕迹,比如手机没玩的时候,流量异常的增多,并且一直和某一个IP地址通信很频繁,可能是黑客正…...
【GitHub】装修个人主页
持续更新各种好文,长期更新技能手册,建议关注收藏点赞! 创建仓库,仓库名自己用户名 权限:public 勾选add a README file修改README.md 这里都是运用markdown语法,以及html标签编写的,可以自行修…...
别急着加内存!从一次OOM到MySQL锁表,我如何用jstack和jvisualvm揪出真凶
从OOM到MySQL锁表:一套完整的问题排查与性能优化实战指南 当线上系统突然崩溃,屏幕上跳出"Memory cgroup out of memory"的红色告警时,大多数开发者的第一反应往往是"赶紧加内存"。但真正的问题往往隐藏在这表面现象之下…...
具身智能新突破:AI驱动机器人迈向真实世界
抱歉,未能检索到过去24小时内符合您特定偏好(具身智能、机器人、芯片、大模型)的10条高影响力科技新闻。这可能是因为当前时间段内相关领域的重大突破性新闻较少,或者全网实时数据源暂时未更新。不过,基于近期的行业趋…...
如何彻底掌控你的微信聊天数据:WeChatMsg完全解决方案
如何彻底掌控你的微信聊天数据:WeChatMsg完全解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCha…...
PCL2启动器:打造你的个性化Minecraft游戏中心
PCL2启动器:打造你的个性化Minecraft游戏中心 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 想要一个既美观又强大的Minecraft启动器吗?PCL2启动器…...
LibreDWG:解放AutoCAD文件的瑞士军刀,3个实用场景教你玩转开源CAD处理
LibreDWG:解放AutoCAD文件的瑞士军刀,3个实用场景教你玩转开源CAD处理 【免费下载链接】libredwg Official mirror of libredwg. With CI hooks and nightly releases. PRs ok 项目地址: https://gitcode.com/gh_mirrors/li/libredwg 还在为无法打…...
10分钟精通D3KeyHelper:暗黑3自动化操作终极实战指南
10分钟精通D3KeyHelper:暗黑3自动化操作终极实战指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 厌倦了在暗黑破坏神3中重复按技能键…...
初创团队如何利用 Taotoken 低成本启动 AI 功能开发
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创团队如何利用 Taotoken 低成本启动 AI 功能开发 对于初创团队和独立开发者而言,在项目早期验证一个 AI 驱动的产品…...
别再让无人机‘炸机’了!手把手教你用BB响设置3.6V安全报警值(附常见误区)
无人机电池安全守护者:BB响3.6V报警值设置全攻略 户外飞行时最令人心惊的瞬间莫过于无人机突然断电坠落——这种被称为"炸机"的意外,往往源于对电池电压的误判。而一个售价不足20元的小工具BB响,却能成为你飞行安全的最后防线。本文…...
在Android Studio里集成MediaPipe手势识别,从编译AAR到跑通Demo的完整避坑指南
Android Studio集成MediaPipe手势识别实战:从编译AAR到Demo调优全流程 在移动端实现实时手势交互一直是计算机视觉领域的核心挑战。MediaPipe作为Google开源的跨平台机器学习管道框架,其手部关键点检测方案在延迟和精度之间取得了出色平衡。本文将带你在…...
认知驱动AI安全测试:P-E-R框架与因果图推理实战解析
1. 项目概述:一个认知驱动的AI安全测试代理最近几年,大语言模型(LLM)在自动化任务处理上展现出了惊人的潜力,但将其应用于像渗透测试这样复杂、动态且需要深度推理的领域,一直是个巨大的挑战。传统的自动化…...
