当前位置: 首页 > news >正文

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模式)

一、环境准备 四台主机&#xff08;一台 LVS、两台 RS、一台客户端&#xff09; 注意每个虚拟机都需要关闭防火墙和 selinux 1.1.LVS 主机 LVS 主机&#xff08;两块网卡&#xff09; 第一块&#xff1a;NAT模式&#xff08;内网&#xff09; 第二块&#xff1a;添加网卡&am…...

MATLAB中的APPdesigner绘制多图问题解析?与逻辑值转成十进制

在matlab APPdesigner中绘图可以用UIAxes组件进行绘图&#xff0c;但是当想多张图时&#xff0c;只能提前绘制图像区域不方便。下面是几种办法&#xff1a; 为了操作可以添加Panl组件&#xff0c;方便操作。 1、当是要求的几个图像大小都是相同时刻采用函数&#xff1a; til…...

9种慢慢被淘汰的编程语言...

技术不断进步&#xff0c;我们使用的编程语言也不例外。 随着人工智能的兴起以及对编程语言使用的影响&#xff0c;我们更加关注哪些语言将在未来继续流行&#xff0c;哪些会被淘汰。 Python、Java 和 JavaScript 等多功能编程语言正在主导市场&#xff0c;而其他一些语言则逐…...

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时使用的元数据关键词&#xff0c;表示其与引擎和关卡编辑器诸多方面的互动方式&#xff1b; 当声明classe、interfaces、structs、enums、enum values、functions、or propertie时&#xff0c;可添加 Metadata Spe…...

【算法与数据结构】并查集详解

目录 一&#xff0c;什么是并查集 二&#xff0c;并查集的结构 三&#xff0c;并查集的代码实现 1&#xff0c;并查集的大致结构和初始化 2&#xff0c;find操作 3&#xff0c;Union操作 4&#xff0c;优化 小结&#xff1a; 四&#xff0c;并查集的应用场景 省份…...

deepseek多列数据对比,联想到excel的高级筛选功能

目录 1 业务背景 ​2 deepseek提示词输入 ​3 联想分析 4 EXCEL高级搜索 1 业务背景 系统上线的时候经常会遇到一个问题&#xff0c;系统导入的数据和线下的EXCEL数据是否一致&#xff0c;如果不一致&#xff0c;如何快速找到差异值&#xff0c;原来脑海第一反应就是使用公…...

Windows操作系统部署Tomcat详细讲解

Tomcat是一个开源的Java Servlet容器&#xff0c;用于处理Java Web应用程序的请求和响应。以下是关于Tomcat的用法大全&#xff1a; 一、安装Tomcat 下载 访问Apache Tomcat官方网站&#xff08;https://tomcat.apache.org/&#xff09;&#xff0c;根据你的操作系统&#xf…...

每日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

题目&#xff1a;移除链表元素 两种实现思路 思路一 使用双指针&#xff0c;prev&#xff0c;cur快慢指针解决。当cur不等于val&#xff0c;两个指针跳过。当等于val时&#xff0c;要考虑两种情况&#xff0c;一种是pos删&#xff0c;一种是头删除。 pos删除就是正常情况&am…...

Managed Lustre 和 WEKA:高性能文件系统的对比与应用

Managed Lustre 和 WEKA&#xff1a;高性能文件系统的对比与应用 1. 什么是 Managed Lustre&#xff1f;主要特点&#xff1a;适用场景&#xff1a; 2. 什么是 WEKA&#xff1f;主要特点&#xff1a;适用场景&#xff1a; 3. Managed Lustre 和 WEKA 的对比4. 如何选择 Managed…...

LeetCode541 反转字符串2

一、题目描述 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。具体规则如下&#xff1a; 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等…...

MAC 系统关闭屏幕/睡眠 后被唤醒 Wake Requests

问题&#xff1b;查看wake 日志 pmset -g log | grep "Wake Requests" 为 Wake Requests [*processdasd requestSleepService...info"com.apple.alarm.user-invisible-com.apple.calaccessd...电源设置命令参考&#xff1a; pmset -g sched //查看定时…...

论文笔记:Multi-Head Mixture-of-Experts

2024 neurips 1 背景 稀疏混合专家&#xff08;SMoE&#xff09;可在不显著增加训练和推理成本的前提下提升模型的能力【比如Mixtral 8*7B&#xff0c;表现可以媲美LLaMA-2 70B】 但它也有两个问题 专家激活率低&#xff08;下图左&#xff09; 在优化时只有一小部分专家会被…...

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 接口的一个类&#xff0c;它属于 java.util 包。与 ArrayList 不同&#xff0c;LinkedList 是基于双向链表实现的&#xff0c;适合于频繁进行插入和删除操作的场景。 1. LinkedList 的基本特性 基于链表实现&#xff1a;LinkedList 使用双向…...

多线程基础面试题剖析

一、线程的创建方式有几种 创建线程的方式有两种&#xff0c;一种是继承Thread&#xff0c;一种是实现Runable 在这里推荐使用实现Runable接口&#xff0c;因为java是单继承的&#xff0c;一个类继承了Thread将无法继承其他的类&#xff0c;而java可以实现多个接口&#xff0…...

.NET SixLabors.ImageSharp v1.0 图像实用程序控制台示例

使用 C# 控制台应用程序示例在 Windows、Linux 和 MacOS 机器上处理图像&#xff0c;包括创建散点图和直方图&#xff0c;以及根据需要旋转图像以便正确显示。 这个小型实用程序库需要将 NuGet SixLabors.ImageSharp包&#xff08;版本 1.0.4&#xff09;添加到.NET Core 3.1/ …...

EasyExcel提取excel文档

目录 一、前言二、提取excel文档2.1、所有sheet----获取得到headerList和总行数2.2、所有sheet----获取合并单元格信息2.3、读取某个sheet的每行数据一、前言 EasyExcel 是阿里巴巴开源的一个高性能 Excel 读写库,相比于 Apache POI 和 JXL,它有明显的优势,特别是在处理大数…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...

FOPLP vs CoWoS

以下是 FOPLP&#xff08;Fan-out panel-level packaging 扇出型面板级封装&#xff09;与 CoWoS&#xff08;Chip on Wafer on Substrate&#xff09;两种先进封装技术的详细对比分析&#xff0c;涵盖技术原理、性能、成本、应用场景及市场趋势等维度&#xff1a; 一、技术原…...

Python的__call__ 方法

在 Python 中&#xff0c;__call__ 是一个特殊的魔术方法&#xff08;magic method&#xff09;&#xff0c;它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时&#xff08;例如 obj()&#xff09;&#xff0c;Python 会自动调用该对象的 __call__ 方法…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响&#xff0c;推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下&#xff0c;基于神经血管耦合现象的多模态神经影像方法&#xff0c;通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里&#xff0c;本研…...

MLP实战二:MLP 实现图像数字多分类

任务 实战&#xff08;二&#xff09;&#xff1a;MLP 实现图像多分类 基于 mnist 数据集&#xff0c;建立 mlp 模型&#xff0c;实现 0-9 数字的十分类 task: 1、实现 mnist 数据载入&#xff0c;可视化图形数字&#xff1b; 2、完成数据预处理&#xff1a;图像数据维度转换与…...