lvs负载均衡、nginx基本内容复习

news2024/12/25 9:02:42

文章目录

  • 前言
  • 一、LVS+keepalived实现高可用负载均衡
  • 二、三种不同模式实现负载均衡的区别与优缺点
    • NAT模式
    • DR直连路由模式
    • TUN隧道模式
  • 三、Nginx之编译、负载均衡实现
    • rr算法实现负载均衡
    • ip_hash算法
  • 四、nginx平滑升级


前言

一、LVS+keepalived实现高可用负载均衡

C/S架构和B/S架构:
C/S架构就是客户机->服务器之间的请求和响应
B/S架构就是客户机->WEB服务器->数据库服务器之间的请求与操作

我们首先开启三台虚拟机,第一台作为调度器,需要安装ipvsadm,它是用户用来写入策略的,其他两台安装httpd服务并且设置开机自启
首先给每台主机添加VIP,确保测试机在测试的时候每台主机都能够响应,但是两台real server需要安装arptables,且对外响应的时候以自身原来的ip对外显示,否则会造成ip地址冲突,我们要做的只是让他们能够识别我们测试所用的ip,是属于自己就足够。
在这里插入图片描述
我们在测试机进行测试,发现实现了负载均衡在这里插入图片描述在这里插入图片描述
DR模式实现负载均衡最核心的部分就是数据包经过调度器的时候,Mac地址被更改,更改为RS的Mac地址,并且以轮叫的方式实现负载均衡;在数据包到达RS之后我们需要对VIP进行屏蔽,以防止ip地址冲突
如果某台RS down了我们该怎么办,这个时候就需要健康检测,每隔一段时间对主机进行检测
安装keepalived之后,down掉的RS就不会被分配数据包,数据包会由健康的RS来完成,而不会出现被分配然后报错的结果
如果LVS本身down了,我们该怎么办,我们就要做LVS冗余
我们还要在添加一台和LVS配置相同的server,不同点是它是作为BACKUP来防止LVS down掉之后业务瘫痪,在MASTER down掉之后,会由BACKUP接替原来的MASTER,直到MASTER恢复健康状态,所以LVS+keepalived共同实现了负载均衡以及高可用

二、三种不同模式实现负载均衡的区别与优缺点

NAT模式

首先将数据包解析到第四层网络层(LVS是基于第四层的负载均衡器),但是在网络层只是获取端口号,而不是建立连接。负载均衡器要将数据分发给RS,只要将目标ip地址替换为RS的ip,数据包要返回客户,首先要配置RS的默认网关为 负载均衡器,这样数据就可以到达负载均衡器,然后由负载均衡器将源ip地址替换为VIP,最后返回客户端。

弊:
非对称
消耗算力,返回客户端的数据都要经过负载均衡服务器,但是现如今硬件水平的提升也让这个缺点不那么明显

DR直连路由模式

负载均衡器在转发数据包的时候,只需要将封装的目标Mac地址修改为RS的Mac地址,这样数据就能从客户端到达RS,RS上有我们设置的VIP,所以可以直接向客户端返回数据包,而不需要经过负载均衡服务器。
修改Mac地址的模式是基于2层链路层,没有修改三层网络层,缺点是不能跨越网络,必须在同一个vlan下;优点是速度快,成本低,缺点是安全性相对比较低,NAT模式更加安全

TUN隧道模式

在这里插入图片描述
我们用到的PPPOE协议、VPN、翻墙就是这种技术。

三、Nginx之编译、负载均衡实现

编译三部曲:(先解压)./configrue make make install
Nginx的启动只需要nginx即可,如果修改了配置文件就要reload重载,想要关闭Nginx直接nginx -s stop即可
在这里插入图片描述
这里访问本机,可以看到nginx已经成功启动,查看端口也可以看到80端口
在这里插入图片描述
我们这里是两核的cpu,worker_cpu_affinity参数是为了充分利用多核CPU的性能
使用epoll作为IO复用的系统调用

nginx是基于epoll的异步非阻塞的服务器程序,所以,nginx可以轻松处理百万级的并发连接;
epoll是select和poll的增强版本,它更加灵活,没有描述符限制,无需轮询,当有I/O流事件发生的时候,epoll就会告诉进程哪个连接有I/O流事件产生,然后就会去处理这个进程。
在这里插入图片描述

rr算法实现负载均衡

在这里插入图片描述
在这里插入图片描述
当我们访问指定的域名的时候,就会被调度器分发给定义的server,并且nginx自带健康检测,某台server down不会影响用户体验,如果server全部down,就会访问到调度器本身,但是由于调度器一般不足以满足大量的访问需求,所以我们可以设定显示网站正在维护中

ip_hash算法

一般同一个ip的访问会由一个server来完成响应,以防止之前提交表单的丢失等问题出现
在这里插入图片描述
在这里插入图片描述
我们可以看到同一个ip访问只会由一台server进行响应,并不是其他server出了问题,整体上来看依旧是负载均衡的状态

四、nginx平滑升级

首先解压一份新版本的nginx tar包,并且./configure make之后将二进制程序放在/usr/local/nginx/sbin/底下,当然在这之前我们要对旧版本的进行备份,便于后续版本回退
在这里插入图片描述
在这里插入图片描述
我们可以看到已经完成了版本的升级,我们采用平滑升级的原因是在升级的过程中nginx服务不会停止,用户对升级无感知,更加贴近于生产环境,当然我们也可以进行版本的回退
在这里插入图片描述
我们到这也实现了版本的回退,同样也是在nginx服务没有停止的状态下完成的

我们在nginx中有许多的操作,比如对数据传输进行控制,限制速率、限制带宽、限制并发量等等,以及nginx重定向,可以设置当我们访问某一地址时直接重定向到另一个地址,当然有这些需求的时候;以及日志的可视化监测等等

nginx也有防盗链功能,当然更多的内容可以直接在nginx官网进行查看,就不一一赘述

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

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

相关文章

UWB室内定位系统的优势与好处

UWB定位系统的优势整理1、精度高:在室内定位领域,能够做到厘米级高精度定位的技术非UWB定位莫属。UWB采用TDOA(到达时间)算法,测量电磁波从发射端到达接收端所用的时间,分布在房间内的几个接收端同时接收到…

nginx小结二:高可用

nginx小结二:高可用nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。有鉴于此需要建立一个备份机,主服务器和备份机通过定…

用迭代局部搜索求解TSP问题(python)

文章目录1.迭代局部搜索(ILS)2.用ILS解决TSP问题2.1 函数模块2.2 主函数2.3 berlin52数据集测试1.迭代局部搜索(ILS) 关于迭代局部搜索(ILS iterated local search)的框架和应用总结可以阅读文献Iterated Local Search: Framework and Applications ILS的核心思想:…

【Kubernetes 企业项目实战】02、基于 Prometheus 和 K8s 构建智能化监控告警系统(下)

目录 一、可视化 UI 界面 Grafana 的安装和配置 1.1 Grafana 介绍 1.2 安装 Grafana 1.3 Grafana 界面接入 Prometheus数据源 1)登录 grafana 2)配置 grafana 界面 3)导入的监控模板 二、kube-state-metrics 组件 2.1 kube-state-m…

JS的基础语法

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 JavaScript的书写形式 行内式 内嵌式 外部式 注释 输入输出 输入 输出 JS的语法规则 变量 数据类型 数字类型 字符串类型 布尔类型 运算…

YED-M724嵌入式4G Cat1 核心板介绍

YED-M724嵌入式4G Cat1 核心板简介YEDM724 核心板是由银尔达(yinerda)基于合宙Air724 模组推出的低功耗,超小体积,高性能嵌入式4G Cat1 核心板。YED-M724嵌入式4G Cat1 核心板特点1、支持5-16V 供电;2、工作环境为-35℃…

基于轻量级YOLOV5融合RepVGG的电梯内电动车检测识别分析系统

RepVGG: Making VGG-style ConvNets Great Again 是2021 CVPR的一篇论文,正如他的名字一样,使用structural re-parameterization的方式让类VGG的架构重新获得了最好的性能和更快的速度。将RepVGG的设计思想融合进入到yolov5目标检测模型中是否有性能的提…

多线程案例-实现定时器

1.定时器是什么定时器是软件开发中的一个重要组件,功能是当达到一个特定的时间后,就执行某个指定好的代码定时器是一个非常常用的组件,特别是在网络编程中,当出现了"连接不上,卡了"的情况,就使用定时器做一些操作来止损标准库中也提供了定时器标准库中的Timer类标准库…

阿里妈妈Dolphin智能计算引擎基于Flink+Hologres实践

作者:徐闻春(花名 陌奈) 阿里妈妈事业部技术专家 本文整理至FlinkHologres实时数仓Workshop北京站,点击查看视频回放>>> 阿里妈妈数据引擎团队负责广告营销计算引擎Dophin的开发,目前支撑百万级广告主的营销…

ios打包证书申请流程

目前的APP开发,多端开发成为了主流,所以开发APP很多都是使用uniapp来开发,而且都是使用windows电脑来开发。但是在打包ios应用的时候,是需要一个p12格式的打包证书和profile描述文件的。 那么这两个文件如何申请呢?这…

关系抽取Casrel实现(Pytorch版)

前言 关系抽取是自然语言处理中的一个基本任务。关系抽取通常用三元组(subject, relation, object)表示。但在关系抽取中往往会面临的关系三元组重叠问题。《A Novel Cascade Binary Tagging Framework for Relational Triple Extraction》提出的CASREL模型可以有效的处理重叠关…

前端基础(十)_Dom自定义属性(带案例)

Dom自定义属性 1.1、为什么要用自定义属性 例&#xff1a;很多个 li 点击变颜色。 <ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8&…

LeetCode[373]查找和最小的K对数字

难度&#xff1a;中等题目&#xff1a;给定两个以 升序排列 的整数数组 nums1和 nums2, 以及一个整数 k。定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff0c;第二个元素来自 nums2。请找到和最小的 k个数对 (u1,v1), (u2,v2)... (uk,vk)。示例 1:输入: nums1 …

离散数学与组合数学-01集合论

文章目录1.离散数学与组合数学-01集合论1.1 集合定义1.1.1 什么是集合1.1.2 集合案例1.1.3 集合的符号表示1.2 集合表示1.2.1属于关系1.2.2 枚举法1.2.3 叙述法1.2.4 文氏图1.3 集合基数1.3.1 什么是集合基数1.3.2 集合基数案例1.4 集合间关系1.4.1 空集1.4.2 全集1.4.3 集合的…

【Vue + Koa 前后端分离项目实战9】使用开源框架==>快速搭建后台管理系统 -- part9 项目总结

人要保持忙碌&#xff0c;因为忙碌是世界上最便宜的药。 本博客教学视频来源于imoom 《0到1快速构建自己的后台管理系统》课程 官方演示地址&#xff1a;https://talelin.com/ 目录 一、项目介绍 1.技术准备 2.学到的内容 &#xff08;1&#xff09;后端接口实现的业务逻辑…

【Kotlin】标准库函数 ③ ( with 标准库函数 | also 标准库函数 )

文章目录一、with 标准库函数二、also 标准库函数Kotlin 语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 , 所有的 Kotlin 类型都可以调用这些函数 ; 一、with 标准库函数 with 函数 与 run 函数 功能是一样的 , 其使用形式不同 , with 函数是 独立使用的 …

LaoCat带你认识容器与镜像(三【下】)

说随缘就随缘&#xff0c;前天刚说惰怠今天就更新~。 本章内容 Docker端口映射相关。 本文实操全部基于Ubuntu 20.04 宿主机 > linux服务器本身 二章二小节中介绍docker create命令时就提供了常用的附加参数列表&#xff0c;docker run可附加参数同create命令附加参数一致&…

Flink【0】初识Flink快速又灵巧

文章目录一、Flink的引入二、Flink的起源和设计理念1.起源2.设计流程一、Flink的引入 随着大数据的飞速发展&#xff0c;出现了很多热门的开源社区&#xff0c;其中著名的有 Hadoop、Storm&#xff0c; 以及后来的Spark&#xff0c;他们都有着各自专注的应用场景。尤以Spark掀…

c++11 标准模板(STL)(std::forward_list)(四)

定义于头文件 <forward_list> template< class T, class Allocator std::allocator<T> > class forward_list;(1)(C11 起)namespace pmr { template <class T> using forward_list std::forward_list<T, std::pmr::polymorphic_…

软件测试:缺陷管理制度

缺陷管理制度 编制部门&#xff1a; 时间&#xff1a;编 制 人&#xff1a; 时间&#xff1a;标 准 化&#xff1a; 时间&#xff1a;审 核&#xff1a; 时间&#xff1a;批 准&#xff1a; …