LVS的NAT方式

1. NAT方式

NAT模式是常用的LVS模式之一。

在NAT模式下,LVS会将来自客户端的请求报文中的目的IP地址和端口,修改为LVS内部的IP地址和端口,然后把请求转发到后端服务器。

响应结果返回客户端的过程中,响应报文也要经过LVS的处理,把它的目的IP地址和端口修改成客户端的IP地址和端口。

好处在于,对于客户端来说,请求的目的地址始终不变,客户端的配置不需要做特殊修改,只是调度器在对IP地址和端口进行转换,后端的服务器也不需要更改任何配置。

缺点:

  • 性能损失,请求和响应都需要调度器做地址转换,影响性能。
  • NAT模式只能有一个调度器,调度器故障,整个集群就不能正常工作。

2. NAT方式实例

Nginx1 :RS1 20.0.0.21

Nginx2 :RS2 20.0.0.22

test2 :调度器 ens33 20.0.0.20 ;ens36 12.0.0.1

test3 :客户端 12.0.0.10

实现:

test3的网关设置为12.0.0.1

在test2上

modprobe ip_vs
#重新加载内核
yum -y install ipvsadm
#安装ipvsadm服务
#在iptables防火墙中添加源地址转换的策略
iptables -t nat -A POSTROUTING -s 20.0.0.0/24 -o ens36 -j SNAT --to 12.0.0.1
#对20.0.0.0/24网段的所有源地址,指定设备ens36,转换源地址为12.0.0.1
systemctl restart ipvsadm
ipvsadm -C
#清空原有的策略
ipvsadm -A -t 12.0.0.1:80 -s rr
#指定好vip的地址和端口,指定轮询策略rr
#先添加VIP,虚拟服务器的IP和端口,然后再添加真实服务器
ipvsadm -a -t 12.0.0.1:80 -r 20.0.0.21:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 20.0.0.22:80 -m
  • -a :添加真实服务器
  • -t :指定vip的地址和端口
  • -r :指定真实服务器的地址和端口
  • -m :使用 masquerade 模式,即将客户端的源地址替换为负载均衡调度器的地址
ipvsadm -ln 
#查看ipvsadm设置
ipvsadm-save >/etc/sysconfig/ipvsadm
#保存当前ipvsadm配置到文件
systemctl restart ipvsadm
#重启服务

客户端curl 12.0.0.1,查看轮询方式。

其他设置:

#删除策略方法
ipvsadm -D -t 20.0.0.10:80
#删除节点服务器方法
ipvsadm -d -r 20.0.0.21:80 -t 12.0.0.1:80
#加权轮询策略
ipvsadm -A -t 12.0.0.1:80 -s wrr
#节点加权
ipvsadm -a -t 12.0.0.1:80 -r 20.0.0.21:80 -m -w 2

只有创建VIP地址的时候才能指定负载均衡算法,策略无法修改,要修改只能删除重建。

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

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

相关文章

redis登录缓存

1.pom.xml中引入redis依赖 <!-- Redis依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.将登录成功的token存储到redis中 if(Md5…

Python面试全攻略:基础知识、特性、算法与实战解析

随着Python的普及&#xff0c;越来越多的人开始学习Python并尝试在面试中展示自己的技能。在这篇文章中&#xff0c;我们将探讨Python面试需要注意的问题以及一些经典的Python算法。 一、Python面试需要注意的问题 基础知识 在Python面试中&#xff0c;基础知识是非常重要的。…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【23】【订单服务】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【23】【订单服务】 订单中心订单信息用户信息订单基础信息商品信息优惠信息支付信息物流信息 订单状态订单流程订单创建与支付逆向流程 订单确认页Feign远程调用丢失请求头问题Feign异步…

MD5/AES/RSA 替换为国密 SM3/SM4/SM2 实现前后端交互

APP-META / 元宇宙应用平台 基于 Spring Boot3、Vue3、Naive UI 构建&#xff0c;助力应用快速开发、发布、运维的低代码平台&#xff0c;旨在帮助使用者&#xff08;包含但不限于开发人员、业务人员&#xff09;快速响应业务需求 背景 目前平台使用的加解密算法为 MD5&#x…

LabVIEW设备检修信息管理系统

开发了基于LabVIEW设计平台开发的设备检修信息管理系统。该系统应用于各种设备的检修基地&#xff0c;通过与基地管理信息系统的连接和数据交换&#xff0c;实现了本地检修工位数据的远程自动化管理&#xff0c;提高了设备的检修效率和安全性。 项目背景 现代设备运维过程中信…

Microsoft Edge(简称Edge)

Microsoft Edge&#xff08;简称Edge&#xff09;是一款由微软开发的网页浏览器&#xff0c;它为用户提供了许多便捷的功能和选项。以下是Edge浏览器的使用方法&#xff1a; 一、基本使用方法 打开Edge浏览器&#xff1a; 可以在Windows的开始菜单中找到“Microsoft Edge”并点…

Codeforces Round 958 (Div. 2)

C o d e f o r c e s R o u n d 958 ( D i v . 2 ) \Huge{Codeforces Round 958 (Div. 2)} CodeforcesRound958(Div.2) 文章目录 Problems A. Split the Multiset题意思路标程 Problems B. Make Majority题意思路标程 Problems C. Increasing Sequence with Fixed OR题意思路标…

MySQL 进阶(四)【锁】

1、锁 1.1、锁的概述 锁就不需要多介绍了&#xff0c;多个用户访问共享数据资源&#xff0c;如何保证数据并发访问的一致性、有效性是数据库最重要的问题。同时&#xff0c;锁冲突也是影响一个数据库并发性能最重要的因素。 MySQL 中锁的划分有三类&#xff1a; 全局锁&…

2024-07-12升级问题:Android SDK升级导致 Canvas.FULL_COLOR_LAYER_SAVE_FLAG 等标志位无法使用

Canvas.FULL_COLOR_LAYER_SAVE_FLAG 是一个标志位&#xff0c;用于在 Android 的 Canvas 类中保存画布的颜色层。当使用 saveLayer() 方法时&#xff0c;可以传递这个标志位来指示保存整个颜色层。这样&#xff0c;在恢复画布状态时&#xff0c;颜色层也会被恢复。 工程从Andr…

力扣---46.全排列

给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2&#xff1a; 输入&#xff1a;nums …

前后端工作重点小结

前端和后端的区分 前端&#xff08;Frontend&#xff09; 和 后端&#xff08;Backend&#xff09; 是 Web 开发中的两个主要部分&#xff0c;它们有不同的职责和技术栈。 前端&#xff08;Frontend&#xff09; 职责&#xff1a;负责用户界面的呈现和用户交互。主要语言&am…

Qt中While循环等待

QEventLoop的方法&#xff1a; .h文件 #ifndef CONTROLLER_H #define CONTROLLER_H#include <QWidget> #include <QPushButton> #include <QVBoxLayout> #include <QEventLoop> #include <QTimer> #include <QDebug>class Controller : …

如何通过网络快速搜寻到自己的STM32设备

目录 一、问题概述 二、解决思路 三、代码实现 1.创建任务 2.UDP广播接收 一、问题概述 以前一直用RS232串口修改设备配置信息&#xff0c;但是现场施工人员的232线太细&#xff0c;经常容易断掉&#xff0c;这次准备用网口去修改&#xff0c;遇到了一个问题&#xff0c;…

C语言学习笔记[24]:循环语句while②

getchar()的使用场景 int main() {char password[20] {0};printf("请输入密码&#xff1a;");//输入 123456 后回车scanf("%s", passwoed);//数组名本身就是数组地址printf("请确认密码&#xff1a;Y/N");int ch getchar();if(Y ch)printf(&…

区块链学习05-web3中solidity和move语言

Solidity 和 Move 语言的比较&#xff1a;Web3 开发中的两种选择 Solidity 和 Move 都是用于开发区块链平台智能合约的编程语言。它们具有一些相似之处&#xff0c;但也存在一些关键差异。 相似之处: Solidity 和 Move 都是图灵完备语言&#xff0c;这意味着它们可以表达计算…

搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示

Xsens DOT可穿戴传感器介绍及示例应用演示 搜维尔科技&#xff1a;Xsens DOT 可穿戴传感器介绍及示例应用演示

JavaEE:Spring Web简单小项目实践二(用户登录实现)

学习目的&#xff1a; 1、理解前后端交互过程 2、学习接口传参&#xff0c;数据返回以及页面展示 1、准备工作 创建SpringBoot项目&#xff0c;引入Spring Web依赖&#xff0c;添加前端页面到项目中。 前端代码&#xff1a; login.html <!DOCTYPE html> <html lang&…

关于window配置gitlab和gitee平台共存

今天使用gitlab拉取代码突然提示 gitgitlab.xxx.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 以为是ssh公钥没有配置好&#xff0c;遂又进行了一番配置&#xff0c;实际上并不是这个问题造成的&#xff0c;但还是想记录一下步骤&#xff0c;以…

<Rust><GUI>rust语言GUI库tauri体验:前、后端结合创建一个窗口并修改其样式

前言 本文是rust语言下的GUI库&#xff1a;tauri来创建一个窗口的简单演示&#xff0c;主要说明一下&#xff0c;使用tauri这个库如何创建GUI以及如何添加部件、如何编写逻辑、如何修改风格等&#xff0c;所以&#xff0c;这也是一个专栏&#xff0c;将包括tauri库的多个方面。…

【前端】原生实现图片的放大与缩放

需求 点击图片&#xff0c;出现一个蒙版和图片&#xff0c;双指捏合可以使图片放大或缩小。 使用前端框架是svelte&#xff0c;但是不影响&#xff0c;功能都是JS实现。 代码 相关定义&#xff1a; import { onMount, afterUpdate, onDestroy } from svelte;let imgDetailRef…