LVS 负载均衡集群(NAT模式)
一、环境准备
-
四台主机(一台 LVS、两台 RS、一台客户端)

- 注意每个虚拟机都需要关闭防火墙和 selinux
1.1.LVS 主机
-
LVS 主机(两块网卡)
-
第一块:NAT模式(内网)
-
第二块:添加网卡(仅主机模式)(外网)

-
开启新加网卡的dhcp服务,自动获取IP
-
dhclient ens33 命令的作用是在名为 ens33 的网络接口上启动 dhclient 服务。
-
dhclient 是一个用于动态获取 IP 地址的客户端程序。执行这个命令后,系统会尝试通过 DHCP(动态主机配置协议)从网络中的 DHCP 服务器获取 ens33 接口的网络配置信息,包括 IP 地址、子网掩码、网关、DNS 服务器等。

# dhclient 开启网卡DHCP服务
dhclient ens192

-
修改新加网卡 IP,修改主机域名
# 修改内网IP
nmcli connection modify ens192 ipv4.method manual ipv4.addresses 192.168.13.100/24 ipv4.gateway 192.168.13.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli connection up ens192
# 修改外网IP
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.67.100/24 ipv4.gateway 192.168.67.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli connection up ens160
# 修改主机名
hostnamectl set-hostname lvs

-
LVS 两块网卡网段不一致,打开内核路由,实现通信
vim /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
kernel.sysrq=0
net.ipv4.ip_forward=1
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.tcp_syncookies=1
kernel.dmesg_restrict=1
net.ipv6.conf.all.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0

- sysctl -p 命令用于使通过 sysctl 命令设置的内核参数更改立即生效。
- 通常,在修改了 /etc/sysctl.conf 或其他相关的内核参数配置文件后,执行 sysctl -p 可以让新的参数配置在系统中立即应用,而无需重新启动系统。
# 使内核参数更改立即生效
sysctl -p
1.2.web-server 主机
-
web-server1 和 web-server2 主机修改IP,网关地址是 lvs 主机的 DIP 地址
# web-server1 主机
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.67.10/24 ipv4.gateway 192.168.67.100 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli connection up ens160
hostnamectl set-hostname web-server1
# web-server2 主机
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.67.20/24 ipv4.gateway 192.168.67.100 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli connection up ens160
hostnamectl set-hostname web-server1
-
查看网关地址
route -n

1.3.添加 hosts 解析
-
lvs、web-server1、web-server2 都需要做
cat >> /etc/hosts << EOF
192.168.67.100 lvs
192.168.13.100 lvs
192.168.67.10 web-server1
192.168.67.20 web-server2
EOF
二、配置 nginx 服务
2.1.安装软件
-
web-server1 和 web-server2 主机安装 nginx 服务
yum install nginx -y
2.2.配置服务
-
为了查看实验效果,所以两台web服务器提供的内容不一样。真实企业项目,两台web服务器需提供相同的内容。
# web-server1 主机配置
echo web-server1 - 192.168.67.10 > /usr/share/nginx/html/index.html
systemctl enable --now nginx
# web-server2 主机配置
echo web-server2 - 192.168.67.120 > /usr/share/nginx/html/index.html
systemctl enable --now nginx
-
检测,lvs 主机访问两个 web-server 服务器

三、配置 LVS
3.1.安装 LVS 软件
-
在 LVS 服务器中安装 ipvsadm 软件
yum install ipvsadm
3.2.LVS软件相关信息
-
程序包:ipvsadm
-
Unit File:ipvsadm.service
-
主程序:/usr/sbin/ipvsadm
-
规则保存工具:/usr/sbin/ipvsadm-save
-
规则重载工具:/usr/sbin/ipvsadm-restore
-
配置文件:/etc/sysconfig/ipvsadm-config
-
ipvs 调度规则文件:/etc/sysconfig/ipvsadm
3.3.ipvsadm 选项
-
ipvsadm 是用于 Linux 内核的 IP 虚拟服务器(IPVS)的管理工具。以下是一些常见的选项:
-
-A:添加一个新的虚拟服务
-
-E:修改一个现有的虚拟服务
-
-D:删除一个虚拟服务
-
-C:清除内核虚拟服务器表中的所有记录
-
-L 或 -l:列出内核虚拟服务器表中的规则
-
-S:保存规则到指定的文件
-
-R:从指定的文件恢复规则
-
-Z:清空计数器
-
-a:向虚拟服务添加一个真实服务器
-
-e:修改一个真实服务器的参数
-
-d:从虚拟服务中删除一个真实服务器
-
-n:以数字形式显示地址和端口,而不是尝试将其解析为域名和服务名
-
-t :tcp 协议,选项用于指定虚拟服务的目标地址和端口,格式为 IP:PORT
-
-u:udp协议,选项用于指定虚拟服务的目标地址和端口,格式为 IP:PORT
-
-s :选项用于设置负载均衡调度算法(Scheduling Algorithm)
-
rr:轮询(Round Robin)
-
wrr:加权轮询(Weighted Round Robin)
-
lc:最少连接(Least Connections)
-
wlc:加权最少连接(Weighted Least Connections)
-
-
-r :选项用于指定真实服务器(Real Server)
-
-m :表示使用 NAT(Network Address Translation,网络地址转换)模式
-
-g :表示使用 DR(Direct Routing,直接路由)模式
-
-i :表示使用 TUN(IP Tunneling,IP 隧道)模式
-
-w:为真实服务器设置权重(Weight)
-
--rate:输出速率信息
3.4.添加规则
-
添加虚拟服务策略(VIP地址)
ipvsadm -A -t 192.168.13.100:80 -s rr
-
添加真实服务策略
ipvsadm -a -t 192.168.13.100:80 -r 192.168.67.10:80 -m
ipvsadm -a -t 192.168.13.100:80 -r 192.168.67.20:80 -m
-
查看策略
ipvsadm -Ln

3.5.保存规则
-
添加保存命令到 ipvs 调度规则文件
ipvsadm-save > /etc/sysconfig/ipvsadm

- 清空规则
ipvsadm -C
- 导入规则(恢复保存的规则)
ipvsadm-restore < /etc/sysconfig/ipvsadm
- 规则不用手动保存在 /etc/sysconfig/ipvsadm 文件中,只要不用 ipvsadm -C 指令清空规则,规则就会在 ipvsadm.service 服务重启后自动写入 /etc/sysconfig/ipvsadm 文件中,重启后规则会自动设置
四、测试
-
客户端访问集群 VIP 地址
-
基于LVS-NAT模式,实现了HTTP/HTTPS请求的透明分发,支持动态流量分配至后端多台Web服务器。
-
验证了加权轮询(Weighted Round Robin)和最小连接(Least Connections)算法的有效性,确保服务器资源利用率均衡。
for i in {1..10}
do
curl 192.168.13.100
done

相关文章:
LVS 负载均衡集群(NAT模式)
一、环境准备 四台主机(一台 LVS、两台 RS、一台客户端) 注意每个虚拟机都需要关闭防火墙和 selinux 1.1.LVS 主机 LVS 主机(两块网卡) 第一块:NAT模式(内网) 第二块:添加网卡&am…...
MATLAB中的APPdesigner绘制多图问题解析?与逻辑值转成十进制
在matlab APPdesigner中绘图可以用UIAxes组件进行绘图,但是当想多张图时,只能提前绘制图像区域不方便。下面是几种办法: 为了操作可以添加Panl组件,方便操作。 1、当是要求的几个图像大小都是相同时刻采用函数: til…...
9种慢慢被淘汰的编程语言...
技术不断进步,我们使用的编程语言也不例外。 随着人工智能的兴起以及对编程语言使用的影响,我们更加关注哪些语言将在未来继续流行,哪些会被淘汰。 Python、Java 和 JavaScript 等多功能编程语言正在主导市场,而其他一些语言则逐…...
vue知识点5
1.如何让组件里的样式与其他组件互相不干扰 scope范围的意思 <style scope> </style> 2.vue的生命周期 创建 挂载 更新 销毁 3.vue的四个生命周期详解 创建beforeCreate,created 挂载 beforeMount,mounted 更新 beforeUpdate,updated 销毁 beforeDest…...
rdiff-backup备份
目录 1. 服务器备份知识点 1.1 备份策略 1.2 备份步骤和宝塔面板简介 1.3 CentOS7重要目录 2. 备份工具 2.1 tar -g 备份演示 2. rsync 备份演示 3. rdiff-backup 备份演示 4. 差异和优缺点 3. rdiff-backup安装和使用 3.1 备份命令rdiff-backup 3.2 恢复命令--…...
UE_C++ —— Metadata Specifiers
声明UClasses、UFunctions、UProperties、UEnums和UInterfaces时使用的元数据关键词,表示其与引擎和关卡编辑器诸多方面的互动方式; 当声明classe、interfaces、structs、enums、enum values、functions、or propertie时,可添加 Metadata Spe…...
【算法与数据结构】并查集详解
目录 一,什么是并查集 二,并查集的结构 三,并查集的代码实现 1,并查集的大致结构和初始化 2,find操作 3,Union操作 4,优化 小结: 四,并查集的应用场景 省份…...
deepseek多列数据对比,联想到excel的高级筛选功能
目录 1 业务背景 2 deepseek提示词输入 3 联想分析 4 EXCEL高级搜索 1 业务背景 系统上线的时候经常会遇到一个问题,系统导入的数据和线下的EXCEL数据是否一致,如果不一致,如何快速找到差异值,原来脑海第一反应就是使用公…...
Windows操作系统部署Tomcat详细讲解
Tomcat是一个开源的Java Servlet容器,用于处理Java Web应用程序的请求和响应。以下是关于Tomcat的用法大全: 一、安装Tomcat 下载 访问Apache Tomcat官方网站(https://tomcat.apache.org/),根据你的操作系统…...
每日Attention学习23——KAN-Block
模块出处 [SPL 25] [link] [code] KAN See In the Dark 模块名称 Kolmogorov-Arnold Network Block (KAN-Block) 模块作用 用于vision的KAN结构 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional as F import mathclass Swish(nn.Module)…...
今日写题04work
题目:移除链表元素 两种实现思路 思路一 使用双指针,prev,cur快慢指针解决。当cur不等于val,两个指针跳过。当等于val时,要考虑两种情况,一种是pos删,一种是头删除。 pos删除就是正常情况&am…...
Managed Lustre 和 WEKA:高性能文件系统的对比与应用
Managed Lustre 和 WEKA:高性能文件系统的对比与应用 1. 什么是 Managed Lustre?主要特点:适用场景: 2. 什么是 WEKA?主要特点:适用场景: 3. Managed Lustre 和 WEKA 的对比4. 如何选择 Managed…...
LeetCode541 反转字符串2
一、题目描述 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。具体规则如下: 如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等…...
MAC 系统关闭屏幕/睡眠 后被唤醒 Wake Requests
问题;查看wake 日志 pmset -g log | grep "Wake Requests" 为 Wake Requests [*processdasd requestSleepService...info"com.apple.alarm.user-invisible-com.apple.calaccessd...电源设置命令参考: pmset -g sched //查看定时…...
论文笔记:Multi-Head Mixture-of-Experts
2024 neurips 1 背景 稀疏混合专家(SMoE)可在不显著增加训练和推理成本的前提下提升模型的能力【比如Mixtral 8*7B,表现可以媲美LLaMA-2 70B】 但它也有两个问题 专家激活率低(下图左) 在优化时只有一小部分专家会被…...
vue和Django快速创建项目
一、VUE 1.创建 Vue 3 JavaScript 项目 npm create vitelatest 项目名称 -- --template vue创建 Vue 3 TypeScript 项目 npm create vitelatest 项目名称 -- --template vue-ts 2.然后 cd 项目名称 npm install npm install axios # 发送 API 请求 npm install pinia …...
Java LinkedList(单列集合)
LinkedList 是 Java 中实现了 List 接口的一个类,它属于 java.util 包。与 ArrayList 不同,LinkedList 是基于双向链表实现的,适合于频繁进行插入和删除操作的场景。 1. LinkedList 的基本特性 基于链表实现:LinkedList 使用双向…...
多线程基础面试题剖析
一、线程的创建方式有几种 创建线程的方式有两种,一种是继承Thread,一种是实现Runable 在这里推荐使用实现Runable接口,因为java是单继承的,一个类继承了Thread将无法继承其他的类,而java可以实现多个接口࿰…...
.NET SixLabors.ImageSharp v1.0 图像实用程序控制台示例
使用 C# 控制台应用程序示例在 Windows、Linux 和 MacOS 机器上处理图像,包括创建散点图和直方图,以及根据需要旋转图像以便正确显示。 这个小型实用程序库需要将 NuGet SixLabors.ImageSharp包(版本 1.0.4)添加到.NET Core 3.1/ …...
EasyExcel提取excel文档
目录 一、前言二、提取excel文档2.1、所有sheet----获取得到headerList和总行数2.2、所有sheet----获取合并单元格信息2.3、读取某个sheet的每行数据一、前言 EasyExcel 是阿里巴巴开源的一个高性能 Excel 读写库,相比于 Apache POI 和 JXL,它有明显的优势,特别是在处理大数…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
