LVS+Keepalived+Nginx宏观整体结构与关键问答

news2025/1/20 3:51:35

视频链接:4-2 为什么要使用 LVS + Nginx?_哔哩哔哩_bilibili

————————————————————————————————————————————————————————

1. 问题:

为什么要使用LVS + Nginx?(直接LVS + 应用不行吗?直接Nginx+ 应用不行吗?)

答:

① Lvs基于四层(IP+端口号),直接转发,几乎没有性能损耗。 Nginx基于七层,需要进一步处理。有性能损耗。

② Lvs并发负载是Nginx的几十倍。如下图所示, 因为LVS只接收请求,但是不需要响应(响应由应用直接返回给用户)。 而Nginx需要同时接收请求和响应请求(接收与响应都需要经过Nginx)。

2. 问题:

LVS三种模式?

答:

NAT:网桥,桥接模式,地址转换。vip暴露在公网。 TUN:IP隧道模式。响应返回直接给用户,不经过vip(缺点:即每个真实服务器节点的IP会暴露给客户) DR:直接路由模式(Direct Router)。响应经过router,通过vip返回给客户(优点:隐藏真实服务器节点ip)

3. 问题:

LVS(采用DR模式)+nginx 架构是什么?

答:

架构如图所示,

DIP与RIP都是"真实IP",只不过叫法不同。

(配置LVS的主机就叫Director)

  • VIP——Virtual IP,vip为调度器Director用于向客户端计算提供服务的IP地址

  • DIP——Director IP,调度器Director的IP地址,Director用于连接外网网络的IP地址,物理网卡上的ip地址

  • RIP——Real Server IP,在集群下面节点上使用的IP地址,物理网卡上的ip地址

4.问题

为什么我们要把调度器Director(LVS)的VIP配置到物理接口上,而把Real Server的VIP配置到本地接口lo上?

答:

参考博客:大白话理解LVS DR模型中的arp_ignore_Ricky的技术小站的博客-CSDN博客_arp_ignore

我们知道,调度器和所有的Real Server都配置了VIP地址,LVS的VIP配置在物理网卡接口上,而Real Server都是配置在了本地接口lo上

为了保证客户端的ARP广播请求可以"只被"调度器Director所响应,因此必须限制所有Real Server的arp响应级别。

所以才设置arp_ignore为1,这样对于Real Server来说,因为arp请求一定来自别的主机,所以接收的网卡只能是物理接口, 而Real Server又将VIP配置到了lo接口上,因此刚好不会回应,从而保证了请求只会到达调度器。

5. 配置具体步骤:

① 配置一台LVS节点(①虚拟IP(eth0:1)②安装ipvsadm) --> 配置两台RS(①虚拟IP(lo:1) ②arp禁用(限制RS网卡对请求的接收与响应的相关处理) ③静态路由router) ② 使用ipvsadm配置集群 -->验证DR模式的rr轮询,LVS集群持久化机制调整(调整参数验证集群rr轮询是否生效) ③ keepalived+LVS+Nginx(两台LVS主备,master与backup)

6. keepalived+LVS+Nginx(两台LVS)

两台LVS,主备 keepalived 可以保证对LVS与Nginx的实时“健康检查”,宕机的RS则直接踢出集群,恢复以后会再自动加入集群。

7. 注意:

阿里云不支持虚拟IP(VIP),需要购买阿里云的负载均衡服务。

腾讯云支持虚拟IP(VIP),每台最大支持10个,但是需要付费。

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

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

相关文章

C语言刮刮乐(掩码图的范例)

程序简介 这个程序模拟了刮刮乐的刮卡操作,按下鼠标左键并移动可以刮开刮卡层。 刮卡操作是通过掩码图实现的,一张隐藏的待刮开背景图,一张掩码图。 刮卡的时候,是在黑色的掩码图上画线,显示的时候,通过…

官方正品 | Ultralytics YOLOv8算法来啦(尖端SOTA模型)

🚀🚀🚀卷王之王 | Ultralytics YOLOv8 算法来啦!!✨✨✨ 一、前言简介 🎄🎈 📚 代码地址:卷王之王 | YOLOv8代码下载地址 📚 详细文档:https://…

代码随想录算法训练营第十四天字符串 java :二叉树理论基础 144前序遍历 145后续遍历94 中序遍历

系列文章目录 第十一天笔记 文章目录系列文章目录前言1、二叉树理论基础1.1二叉树的种类1.1 如何区分二叉树的遍历方式1.2 如何定义二叉树节点2 递归遍历2.1**前序遍历 AC代码**2.2**后序遍历 AC代码**2.3 **中序遍历 AC代码**3 迭代法4 层次遍历总结**什么是List<List <…

组态王软件与S7-1200无线MODBUS通信方案详解

本方案是组态软件与西门子 S7-1200进行无线 MODBUS 通信的实现方法。此方案可以作为西门子 S7-1200与组态软件的无线 MODBUS 通信实例。在本方案中采用了西门子PLC专用无线通讯终端DTD434MC&#xff0c;作为实现无线通讯的硬件设备。 一、方案概述 组态王配置为标准 MODBUS 主…

基础面试问题

在Java中获取当前的工作目录System.getProperty("user.dir")public class Test {public static void main(final String[] args) {final String dir System.getProperty("user.dir");System.out.println("current dir " dir);} }获取一定范围…

Redis01之Windows版本的Redis安装配置

目录 0. 学习网址 https://www.w3cschool.cn/redis/https://www.w3cschool.cn/redis/ 1. Redis简介 2. 下载 3. 安装和配置 3.1 window(略...) 3.2 linux(CentOS) 4. Redis支持五种数据类型 5.通过命令操作redis 0. 学习网址 https://www.w3cschool.cn/redis/http…

一文搞懂CPU如何控制I/O设备

1 接口和设备&#xff1a;经典适配器模式 输入输出设备不只是一个设备。大部分输入输出设备&#xff0c;都有&#xff1a; 它的接口&#xff08;Interface&#xff09;实际的I/O设备&#xff08;Actual I/O Device&#xff09; 硬件设备并非直接接入到总线上和CPU通信&#…

UOS 录制电脑播放的音频 / 内录音频

Windows 里面有一个“立体声混音”&#xff0c;可以内录电脑播放的音频&#xff0c;而不受到外界噪音的干扰。前段时间接到反馈说 UOS 的设置里面的音频输入里面没有可以选择的设备&#xff0c;这里就稍微探索了一下&#xff0c;发现 UOS 也是可以配置内录的。这里参考了一下这…

网络基础(一)

网络基础&#xff08;一&#xff09;计算机网络背景网络发展独立模式: &#xff08;计算机之间相互独立&#xff09;网络互联: ( 多台计算机连接在一起, 完成数据共享)局域网LAN: (计算机数量更多了, 通过交换机和路由器连接在一起);广域网WAN: &#xff08;将远隔千里的计算机…

vue入门到精通(一)

一、vue简介 Vue是一款用于构建用户界面的 JavaScript 框架。 它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。 无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 二、vue3选项式…

Linux编译器-gcc/g++使用

目录 1. 背景知识 2. gcc如何完成 2.1 预处理(进行宏替换) 2.2 编译&#xff08;生成汇编&#xff09; 2.3 汇编&#xff08;生成机器可识别代码&#xff09; 2.4 链接&#xff08;生成可执行文件或库文件&#xff09; 3 函数库 3.1 分类 3.2 图解 4 gcc选项 1. 背景知…

开源工具系列2:Trivy

在云原生安全的场景中&#xff0c;一个常见的场景就是对漏洞和配置进行扫描&#xff0c;以发现整个 K8s 环境的安全问题。今天我们来介绍一个高效的扫描工具Trivy。 Trivy 是什么 Trivy&#xff08;tri 发音为 trigger&#xff0c;vy 发音为 envy&#xff09;是一个简单而全面…

QT 学习笔记(十七)

文章目录一、多线程简介1. 基础知识2. 多线程的优缺点及注意事项二、多线程详解1. 背景案例2. 通过多线程对背景案例进行优化3. 方法一&#xff1a;多线程的创建使用&#xff08;QT 4.7 以前&#xff09;3.1 方法一的创建步骤3.2 方法一的具体实现及实现代码4. 方法二&#xff…

Android Hook之Frida安装使用

目录Frida安装安装frida-serverfrida-server配置和启动Frida Hook实例1&#xff1a;实例2&#xff1a;Frida 常用命令Frida 是一个动态检测框架&#xff0c;允许开发人员在 Windows、macOS、Linux、iOS 和 Android 上的原生应用程序中注入 JavaScript 或 Python 脚本。该框架可…

Spring复习(二)

FactoryBean FactoryBean是一个接口&#xff0c;需要创建一个类实现该接口 package com.mao.pojo;import org.springframework.beans.factory.FactoryBean;public class StudentFactoryBean implements FactoryBean {//getObject方法将对象交给Spring容器来管理Overridepubli…

Go web开发

使用 Gin-Plus 框架快速进行 web 开发 一、前言 安装 Get go get github.com/archine/gin-plus/v2v2.0.0Mod # go.mod文件加入下面的一条 github.com/archine/gin-plus/v2 v2.0.0# 命令行在该项目目录下执行 go mod tidy二、项目使用 1、启动入口 定义 main 文件&#xf…

来自一位双非本科大二学生的?自我救赎:堕落——蜕变

回望2022&#xff1a;获得&#xff1f;&#xff1a;失去&#xff1b;开心&#xff1f;&#xff1a;难过&#xff1b;伤心&#xff1f;&#xff1a;释怀 先提一句&#xff0c;总结2022&#xff0c;有后悔、不甘&#xff1b;有开心、感动&#xff1b;2022结束&#xff0c;更多的是…

springboot 2.6.6读不到nacos上的配置文件

搭建了一个微服务项目 spring boot 版本&#xff1a;2.6.6 spring cloud 版本&#xff1a;2021.0.1 spring cloud alibaba 版本&#xff1a;2021.0.1.0 遇到的问题无论是在application.yml还是在bootstrap.properties属性文件里配置服务中心相关的的信息都不能读取nacos上的…

LeetCode[215]数组中的第K个最大元素

难度&#xff1a;中等题目&#xff1a;给定整数数组 nums和整数 k&#xff0c;请返回数组中第 k个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第 k个最大的元素&#xff0c;而不是第 k个不同的元素。你必须设计并实现时间复杂度为 O(n)的算法解决此问题。示例 1:输…

2.5(完结)C语言重点解剖内存管理函数要点速记

1.指针如果有具体的指向&#xff0c;包括野指针&#xff0c;对应的合法性&#xff0c;我们是无法验证的。 2.所有的指针如果没有被直接使用&#xff0c;必须设置为NULL。 3.在函数内部&#xff0c;要验证指针的合法性&#xff0c;本质上是验证指针!NULL。 4.自定义函数传入指…