nginx负载均衡(nginx结束)

news2024/9/26 5:24:21

本节主要内容

1、四层,七层代理的配置方法

2、负载均衡的算法

nginx负载均衡:反向代理来实现

 反向代理有两种转发方式:1、四层代理  2、七层代理

Nginx的七层代理和四层代理

七层是最常见的反向代理方式,只能配置在nginx配置文件的http模块,而且配置方法名称:upstream模块   不能写在server模块,也不能写在location模块中,在htp模块中是一个独立的配置。

七层代理:就是代理http的请求和响应

工作原理:客户端→http请求→七层代理(代理服务器上)→代理服务器转发http请求到内部的一组服务器上(web集群)→客户端不知道请求的是代理服务器还是内部服务器,而且通过代理服务器响应了内部服务器的ip,实际上访问的是代理服务器,请求到代理服务器,代理服务器转发给web服务器,web服务器响应。

四层代理:

四层代理是基于tcp/ip协议层的代理转发方式,可以实现基于ip地址和端口进行负载均衡转发,四层代理无法获取http请求的URL信息,只能对tcp/udp数据包进行转发。流量转发

在nginx中为stream,stream是不能配置在http模块中,配置在全局中,是属于一个独立的模块,不属于其他任何模块。

面试题一:七层代理和四层代理的区别

1、七层代理走的是http请求,可以对请求进行深入的解析和处理,流量控制,内容过滤。

四层代理走的是tcp/udp请求的数据包,转发的是流量。

2、四层代理不能对流量进行控制,也没办法对内容进行过滤,

3、四层代理通常适用于需要处理大量连接请求的场景

七层代理适用于对请求进行精确处理和控制的场景

面试题二:四层代理和七层代理谁的速度块

1、四层代理只是流量转发,不能对请求进行解析和控制,所以速度块。

七层代理要对请求进程处理和解析,所以速度慢。

2、四层代理走的是内核,内核转发的是流量,所以速度快。

七层代理走的是用户态,访问控制,流量处理,所以速度慢。

正向代理(用的少):

 谷歌看到的请求地址是代理服务器的地址

proxy_pass:配置代理服务器访问的地址,只能写在location模块中

反向代理(重点,用的多)

反向代理:客户端访问代理服务器,代理服务器转发请求或者流量到后端服务器

后端的web服务器会有多台(集群),用户并不知道最终访问的是哪一台服务器

反向代理的特点:负载均衡,高可用,可扩展,提高可维护性

upstream:基于https实现负载均衡,就是反向代理

总结:1、http请求的负载均衡方式

2、没有缓存,返回码没有304

3、负载均衡算法

负载均衡的算法(重点,面试会问):

1、默认算法,轮询(rr):请求轮流分配给后端服务器

轮询算法适用于web服务器处理能力相近的情况,不写入任何方法就是默认的轮询算法

2、加权轮询:建立在轮询算法的基础之上,通过给不同的web服务器权重,让处理能力更强的服务器可以分配到更多的请求。

虽然配置了权重值,但是轮询的结果未必准确。

例:

server 192.168.88.20  weight=2;

server 192.168.88.30  weight=3;

30服务器的权重大,会分配到更多的请求

3、ip_hash:根据IP地址计算出一个hash值,使用ip_hash算法,同一个客户端的请求会被分配到同一个后端服务器。保证会话的稳定性。后端服务器的数量发生变化,hash会被重新计算,请求的服务器也会发生变化。

4、最少连接数:least_conn; 轮询,请求发送到当前连接数最少的后端web服务器。

适用于后端服务器处理任务耗时不同的情况,避免了所有请求集中在处理能力更强的后端服务器上。会和加权轮询配合使用。

5、url_hash:根据uri地址计算hash值,使用url_hash,相同请求的uri会分配到同一个后端web服务器。


总结:1、并发量小,默认算法就可以满足使用条件。

2、后端web服务器的处理能力有差异,使用加权轮询和最小连接数配合使用。

3、高并发,会使用ip_hash或url_hash,第一次请求之后会有本地缓存,而且因为hash算法的原因,请求的后台web服务器不会发生变化,可以提高访问速度,访问的是缓存,减轻了后台服务器的请求压力。

4、ip_hash:后端web服务器数量发生变化,请求的服务器也会发生变化

url_hash:请求的地址发生变化,请求的服务器也可能发生变化

面试题三:怎么做反向代理(实际上问的是负载均衡)

反向代理就是负载均衡,要做负载均衡要看使用场景的并发量,访问人数有多少,根据这个指标来确定负载均衡的算法。

并发量小:默认的轮询算法或加权轮询配合最小连接数使用即可

高并发:ip_hash或url_hash来实现,访问一次之后就不会再切换到后端web服务器

下一次访问就是缓存,速度快,后台web服务器请求的压力也会变小。

stream和upstream都可以做反向代理

实验

upstream

轮询算法

192.168.88.30作为代理服务器

修改30服务器

 ky30相当于调用的函数,用proxy_pass来调用ky30

 

 

修改40服务器和50服务器

 

 

到浏览器查看

实验二:加权轮询

 

 

 

 在浏览器清除一下缓存,刷新几次发现轮询的结果不一定准确

实验三:ip_hash

 

 

 

 在浏览器新开一个页面,清除缓存,通过30代理服务器访问

 刷新几次发现一开始的状态码为200,后面的状态码都为304读取的是缓存

因为使用ip_hash算法,同一个客户端的请求会被分配到同一个后端服务器。保证会话的稳定性。

实验四:最少连接数

 

 

 请求40服务器时状态码为200

 请求50时,状态码为304

实验五:url_hash

 

 

 

 

 多刷新几次发现没有变化,访问的都是40服务器

到50服务器中

 

 

 

 请求的是location匹配的uri

使用url_hash会把相同请求的uri会分配到同一个后端web服务器

实验六:基于域名实现负载均衡

 ky30相当于一个名字可以随便去但是不能为特殊符号

 因为没有这个网址,需要在本地做个映射

 检查一下

到40服务器中修改域名

 

在本地做映射 

到50服务器中

 

做映射 

开一台新的虚拟机

 

回到客户机30

 在请求头中要包含真实ip地址,和真实的域名才可以在浏览器中成功访问

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

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

相关文章

基于SDK方式的小程序监控

基于SDK方式的小程序监控 一、背景 微信小程序自 2017 年正式上线以来,就受到商家和开发者的青睐。到 2022 年底,我国的互联网普及率已经高达 75.6%。随着互联网的快速发展,小程序也在快速成长,不仅使用人数在逐年攀升&#xff…

宝尊电商短期前景堪忧,宝尊国际能否取得成功还有待验证

来源:猛兽财经 作者:猛兽财经 核心业务面临短期逆风 在2023年第一季度财报中,宝尊电商(BZUN)表示其电商业务(简称BEC)主要包括:品牌的门店运营、客户服务以及物流和供应链管理、IT和数字营销等增值服务”。…

词嵌入、情感分类任务

目录 1.词嵌入(word embedding) 对单词使用one-hot编码的缺点是难以看出词与词之间的关系。 所以需要使用更加特征化的表示(featurized representation),如下图所示,我们可以得到每个词的向量表达。 假设…

php webshell 免杀入门

webshell 查杀软件: d盾、安全狗、护卫神、Sangfor WebShellKill 在线查杀 百度WEBDIR https://scanner.baidu.com 河马 https://www.shellpub.com cloudwalker牧云 https://webshellchop.chaitin.cn 查杀技术 静态检测、动态检测、日志检查 静态检查&#xff1a…

感觉和身边其他人有差距?你的感觉我懂!

在我们的成长历程中,总要经历不同的人和事,身边不乏比我们优秀,比我们厉害的人,这个是无可避免的,也是无法选择的,但是可以选择的是:我们怎么做! 目录 我的情况事件感受 我的解法心态…

【人工智能前沿弄潮】—— 玩转SAM(Segment Anything)

玩转SAM(Segment Anything) 官网链接: Segment Anything | Meta AI (segment-anything.com) github链接: facebookresearch/segment-anything: The repository provides code for running inference with the SegmentAnything Model (SAM), links fo…

企业服务器被devos勒索病毒攻击后怎么处理,devos勒索病毒如何攻击的

众所周知,科学技术是第一生产力,科学技术的发展给企业与人们的生活带来了极大变化,但随之而来的网络安全威胁也不断增加。最近,我们收到很多企业的求助,企业的计算机服务器遭到了devos勒索病毒的攻击,导致企…

华为、腾讯、淘宝面试流程+面试技术题分析,速看!

IT 是一个人才日益紧缺的行业,随着人才的紧缺,IT 业的薪水也是水涨船高。互联网巨头们对人才的争夺,更是日益激烈化。对于从事 IT 的职场人士,绝大部门都想进入那些巨头公司。除了薪水高、办公环境好,发展更有前景外&a…

unity海康威视原生SDK拉取网络摄像头画面,并展示在一个Material上

原理是使用sdk获取视频流,格式为YUV,然后分离YUV通道到三张不同的Texture2D上,通过shader将三个通道重新输出为原始图像。 我将所用的各个部分已经整理成一个压缩包,免积分下载 压缩包结构如下 使用步骤 1 DLL:放在Plugins文件…

东南亚调研

东南亚地理 东南亚经济 https://zh.m.wikipedia.org/zh-hans/%E4%B8%9C%E7%9B%9F%E5%9B%BD%E5%AE%B6GDP%E5%88%97%E8%A1%A8 东南亚人口结构 东南亚一半以上的人口年龄在 30 岁以下 https://population-pyramid.net/zh-cn 东南亚数字经济 原文件: 谷歌关于东南亚数…

Java整合Selenium录制视频

捕捉视频 有时候我们未必能够分析故障只需用日志文件或截图的帮助。有时捕获完整的执行视频帮助。让我们了解如何捕捉视频。 我们将利用Monte媒体库的执行相同。 配置 第1步:导航到URL下载屏幕记录JAR,如下图所示。 http://www.randelshofer.ch/monte…

20230809在WIN10下使用python3批量将TXT文件转换为SRT文件

20230809在WIN10下使用python3批量将TXT文件转换为SRT文件 2023/8/9 17:30 由于喜欢看纪录片等外文视频,通过剪映/PR2023/AUTOSUB识别字幕之后,可以通过google翻译识别为简体中文的DOCX文档。 DOCX文档转换为TXT文档之后,还需要转换为SRT文档…

Linux(CentOS7)搭建达梦数据库

参考官方文档 本文记录一下达梦数据库的安装步骤,在安装的过程中出现了一些问题,进行了处理。 文章目录 安装前准备数据库安装命令行安装图形化安装 配置实例注册服务启动、停止数据库 安装前准备 用户在安装 DM 数据库之前需要检查或修改操作系统的配…

Easy Rules规则引擎(1-基础篇)

目录 一、序言二、Easy Rules介绍三、定义规则(Rules)1、规则介绍2、编程式规则定义3、声明式规则定义 四、定义事实(Facts)五、定义规则引擎(Rules Engine)1、规则引擎介绍2、InferenceRulesEngine规则引擎示例(1) 定义触发条件(2) 定义规则触发后的执行行为(3) 测试用例 一、…

智能安防监控:基于Java+SpringBoot实现人脸识别搜索

目录 引言背景介绍目的和重要性 人脸识别技术的基本原理图像采集和预处理特征提取与表示人脸匹配算法 人脸识别搜索的应用领域公告安全和监控社交网络和照片管理 参考实现步骤数据收集与预处理人脸特征提取查询处理 引言 背景介绍 结合人脸识别技术,在工厂、学校、…

【Docker】AUFS、BTRFS、ZFS、储存池详解

洁洁的个人主页 我就问你有没有发挥! 知行合一,志存高远。 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是…

2023/08/09 IOS设计规范收集

背景:绘制原型图时,不确定状态栏、标签栏、侧边margin具体怎么设置,很困惑… iphone 界面尺寸 左边是能找到最新的设计规范,右边是auxre10自带画布尺寸显示,结合做参考 ios界面结构 状态栏 状态栏位于界面最上方&…

Leetcode-每日一题【剑指 Offer 18. 删除链表的节点】

题目 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head [4,5,1,9], val 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调…

竞争加剧,毛利率低于竞争对手,京东前路艰难

来源:猛兽财经 作者:猛兽财经 机遇与风险 虽然京东(JD)与亚马逊(AMZN)在业务方面有很多相似的地方,但两家公司在毛利率方面却有很大的差异。长期以来,亚马逊的利润率一直接近40%甚至…

模板学堂|SQL数据集动态参数使用场景及功能详解

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场(https://dataease.io/templates/)。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方便用户根据自身的业务需求和使用场景选择对应的仪表板模板&a…