nginx负载均衡
负载均衡:反向代理来实现
正向代理的配置方法。
1、NGINX的七层代理和四层代理:
七层是最常用的反向代理方式,只能配置在nginx配置文件的http模块。而且配置方法名称:upstream 模块,不能写在server中,也不能在location中,在http模块当中是独立的一个配置。
七层代理: 七层代理的就是http请求和响应。
客户端------>http请求------>七层代理(代理服务器上)----------->代理服务器转发http请求到内部的一组服务器(web集群)
--------------->客户端不知道请求的代理服务器还是内部服务器,而且通过代理服务器影藏了内部服务器的ip.
实际上访问的是代理服务器,请求到代理,代理转发给web服务器。web服务器响应。web服务器响应的。
四层代理:四层代理是基于tcp/ip协议层的代理转发方式,可以实现基于ip地址和端口进行负载均衡转发。
四层代理无法获取http请求当中的URL信息,只能对tcp/udp数据包进行转发。流量转发。stream,stream是不能配置在
http模块中,配置在全局当中。是属于一个独立的模块,不属于其他任何模块。
四层代理和七层代理之间的区别:
1、七层走的是http请求,四层走的tcp/udp的数据包,转发的是流量。
七层代理,http请求,可以对请求进行深入的解析和处理,流量控制,内容的过滤
四层代理不能进行流量控制,也没办法对内容进行过滤。
四层代理通常适用于:需要处理大量连接请求的场景。
七层:对请求进行精确处理和控制的场景。
在实际工作中,四层和七层可以配合使用。
2、四层和七层谁的速度快:
四层代理速度比七层代理速度快
1、四层只是流量转发,不能对请求进行解析和控制。所以速度快
2、四层代理走的是内核,内核转发的流量,所以速度快。
1、七层慢,他对请求进行处理和解析,速度比较慢
2、七层走的是用户态,访问控制,流量处理,所以速度比较慢。
七层代理可以提供更高级的服务和更高的用户体验。
正向代理:
proxy_pass 配置代理服务器访问的地址。只能写在location模块当中。
反向代理:客户端访问代理服务器,代理服务器转发请求或者流量到后端服务器,后端的web服务器会有多台,用户并不知道最终访问的是哪一台服务器。
负载均衡 高可用 可扩展 提高可维护性
你在工作中怎么做反向代理?
upstream: 基于https实现负载均衡。反向代理。
1、http请求的负载均衡方式
2、没有缓存
3、负载均衡的算法:
1、默认算法:轮询 rr 请求轮流分配给后端服务器,轮询算法使用与web服务器处理能力相近的情况,默认算法,可以不加。
2、 加权轮询: 建立在轮询算法的基础之上,通过给不同的web服务器权重,让处理能力更强的服务器可以分配到更多的请求。
虽然配置了权重值,但是轮询的结果未必准确。
3、ip_hash:根据IP地址计算出一个hash值,使用ip hash算法,同一个客户端的请求会被分配到同一个后端服务器。保证会话的稳定性。后端服务器的数量发生变化,hash会被重新计算,请求的服务器也会发生变化。
4、最少连接数:least_conn; 轮询,请求发送到当前连接数最少得后端web服务器。
适用于后端服务器处理任务耗时不同的情况,避免了所有请求集中在处理能力更强的后端服务器上。会和加权轮询配合使用。
5、url_hash:根据uri地址计算hash值,使用urlhash,相同请求的uri会分配到同一个后端web服务器。
小场景:并发量很小,默认算法就可以满足适应条件
后端web服务器的处理能力有差异:加权轮询,和最小链接数配合使用。
大型并发:ip_hash ,url_hash。第一次请求之后,会有本地缓存,而且因为hash算法的原因,请求的后台web服务器不会发生变化,可以提噶访问速度,访问的是缓存。减轻了后台服务器的请求压力。
ip_hash,后端web服务器数量发生变化,请求的服务器也可能会发生变化。‘
url_hash,请求的地址发生变化,请求的服务器也可能会发生变化。
你怎么做反向代理?
反向代理就是负载均衡,你要做负载均衡,看你的场景并发量,访问人数有多少。根据这个指标,来确定负载均衡的算法。
并发小:默认轮询或者加权轮询,配合最小连接数使用即可。
高并发:ip_hash或者url_hash来实现,访问一次之后,就不会再切换后端web服务器,下一次访问就是缓存,速度快,后台web服务器
请求的压力,也会变小。
相关文章:
nginx负载均衡
负载均衡:反向代理来实现 正向代理的配置方法。 1、NGINX的七层代理和四层代理: 七层是最常用的反向代理方式,只能配置在nginx配置文件的http模块。而且配置方法名称:upstream 模块,不能写在server中,也…...
【毕业项目】自主设计HTTP
博客介绍:运用之前学过的各种知识 自己独立做出一个HTTP服务器 自主设计WEB服务器 背景目标描述技术特点项目定位开发环境WWW介绍 网络协议栈介绍网络协议栈整体网络协议栈细节与http相关的重要协议 HTTP背景知识补充特点uri & url & urn网址url HTTP请求和…...
关于安卓jar包修改并且重新发布
背景: 对于某些jar包,其内部是存在bug的,解决的方法无外乎就有以下几种方法: (1)通过反射,修改其赋值逻辑 (2)通过继承,重写其方法 (3࿰…...
Java课题笔记~ AspectJ 对 AOP 的实现(掌握)
AspectJ 对 AOP 的实现(掌握) 对于 AOP 这种编程思想,很多框架都进行了实现。Spring 就是其中之一,可以完成面向切面编程。然而,AspectJ 也实现了 AOP 的功能,且其实现方式更为简捷,使用更为方便,而且还支…...
npm 报错 cb() never called!
不知道有没有跟我一样的情况,在使用npm i的时候一直报错:cb() never called! 换了很多个node版本,还是不行,无法解决这个问题 百度也只是让降低node版本请缓存,gpt给出的解决方案也是同样的 但是缓存清过很多次了&a…...
finally有什么作用以及常用场景
在Java中,finally是一个关键字,用于定义一个代码块,该代码块中的代码无论是否发生异常都会被执行。finally块通常用于确保在程序执行过程中资源的释放和清理。 使用场景: 1. 资源释放:finally块经常用于释放打开的资…...
Python web实战之Django URL路由详解
概要 技术栈:Python、Django、Web开发、URL路由 Django是一种流行的Web应用程序框架,它采用了与其他主流框架类似的URL路由机制。URL路由是指将传入的URL请求映射到相应的视图函数或处理程序的过程。 什么是URL路由? URL路由是Web开发中非常…...
10-数据结构-队列(C语言)
队列 目录 目录 队列 一、队列基础知识 二、队列的基本操作 1.顺序存储 编辑 (1)顺序存储 (2)初始化及队空队满 (3)入队 (4)出队 (5)打印队列 &…...
面试之快速学习C++11 - 右值 移动构造 std::move
C11右值引用 字面意思,以引用传递的方式使用c右值左值和右值,左值是lvalue loactor value 存储在内存中,有明确存储地址的数据, 右值rvalue read value , 指的是那些可以提供数据值的数据(不一定可以寻址,…...
vue实现5*5宫格当鼠标滑过选中的正方形背景颜色统一变色
vue实现5*5宫格当鼠标滑过选中的正方形背景颜色统一变色 1、实现的效果 2、完整代码展示 <template><div id"app" mouseleave"handleMouseLeave({row: 0, col: 0 })"><div v-for"rowItem in squareNumber" :key"rowItem…...
2023-08-09 LeetCode每日一题(整数的各位积和之差)
2023-08-09每日一题 一、题目编号 1281. 整数的各位积和之差二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 示例1: 示例2: 提示: 1 …...
EditPlus连接Linux系统远程操作文件
EditPlus是一套功能强大的文本编辑器! 1.File ->FTP->FTP Settings; 2.Add->Description->FTP server->Username->Password->Subdirectory->Advanced Options 注意:这里的Subdirectory设置的是以后上传文件的默认…...
JVM 垃圾回收
垃圾回收算法 标记-清除算法(Mark and Sweep) 标记-清除算法分为两个阶段。在标记阶段,垃圾收集器会标记所有活动对象;在清除阶段,垃圾收集器会清除所有未标记的对象。标记-清除算法存在的问题是会产生内存碎片&#…...
编程中的宝藏:二分查找
二分查找 假设你需要在电话簿中找到一个以字母 “K” 开头的名字(虽然现在谁还在用电话簿呢!)。你可以从头开始翻页,直到进入以 “K” 打头的部分。然而,更明智的方法是从中间开始,因为你知道以 “K” 打头…...
计算机网络 数据链路层
...
如何维护自己的电脑
目录 1、关于电脑选择的建议 1.1、价格预算 1.2、明确需求 1.3、电脑配置 1.4、分辨率 1.5、续航能力 1.6、品牌选择 1.7、用户评测 1.8、各个电商平台对比 1.9、最后决策 2、我的选择 3、电脑保养 3.1 外部清洁 3.2 安装软件 3.3 优化操作系统 3.4 维护硬件设…...
智能优化算法——哈里鹰算法(Matlab实现)
目录 1 算法简介 2 算法数学模型 2.1.全局探索阶段 2.2 过渡阶段 2.3.局部开采阶段 3 求解步骤与程序框图 3.1 步骤 3.2 程序框图 4 matlab代码及结果 4.1 代码 4.2 结果 1 算法简介 哈里斯鹰算法(Harris Hawks Optimization,HHO),是由Ali As…...
【深度学习】多粒度、多尺度、多源融合和多模态融合的区别
多粒度(multiresolution)和多尺度(multiscale) 多粒度(multiresolution)和多尺度(multiscale)都是指在不同的空间或时间尺度上对数据或信号进行分析和处理。其中 多尺度࿱…...
利用SCCM进行横向移动
01SCCM介绍 SCCM全名为System Center Configuration Manager,从版本1910开始,微软官方将其从Microsoft System Center产品移除,重新命名为Microsoft Endpoint Configuration Manager(ConfigMgr),其可帮助 …...
Nginx 负载均衡
Nginx 负载均衡 负载均衡由反向代理来实现的 其中反向代理分为七层代理和四层代理,一般常用的是七层代理,接下来分别介绍一些 NGINX 七层代理 七层是最常用的反向代理方式,只能配置在Nginx配置文件的http模块。 配置方法名称:…...
c++如何将图片读入内存_二进制方式读取jpg与png【附代码】
最稳妥做法是用 std::ifstream 以 binaryate 模式读取 JPG/PNG 到 std::vector<unsigned char>,需显式指定二进制标志、正确获取文件大小并校验读取字节数,避免文本模式干扰、内存越界及路径编码问题。用 std::ifstream 以二进制方式读取 JPG/PNG …...
SITS2026首批通过架构案例全披露(含字节/阿里/平安内部PPT精要),仅剩最后23个企业可申请架构对标评估
第一章:SITS2026深度解析:AI原生应用架构设计 2026奇点智能技术大会(https://ml-summit.org) AI原生应用已不再满足于将模型“封装后调用”,而是要求从基础设施、服务编排、状态管理到用户交互的全栈重构。SITS2026(Singularity …...
为什么92%的AI项目在上线后遭遇备份失效?3个被忽视的元数据一致性陷阱曝光
第一章:AI原生软件研发容灾备份策略设计 2026奇点智能技术大会(https://ml-summit.org) AI原生软件具备模型权重动态更新、推理服务弹性伸缩、训练流水线持续迭代等特性,传统基于静态二进制与数据库快照的容灾方案难以覆盖模型版本、特征存储、向量索引…...
焊接机器人数据采集物联网解决方案
方案背景 在汽车制造领域,焊接机器人作为车身焊接、零部件焊接、汽车总装的自动化生产设备,发挥着至关重要的作用。它们能够精确、高效地完成各种焊接任务,确保焊接质量稳定可靠,焊接强度、焊缝外观等关键指标符合严格的标准要求。…...
【仅限首批参会者获取】:2026奇点大会AI原生审查沙箱环境访问权(含金融/医疗双领域合规审查模板)
第一章:2026奇点智能技术大会:AI原生代码审查 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上,“AI原生代码审查”不再作为辅助工具存在,而是深度嵌入软件开发生命周期的每个环节——从提交前的本地预检…...
别再死记公式了!手把手带你用Python脚本搞定二级运放GBW与相位裕度设计
用Python脚本解放模拟IC设计:二级运放GBW与相位裕度的自动化探索 在模拟集成电路设计的浩瀚海洋中,二级运算放大器就像是一艘精巧的帆船——结构看似简单,却需要设计师对每个参数都了如指掌才能驾驭得当。传统设计流程中,工程师们…...
从标准卷积到转置卷积:揭秘上采样的可学习之路
1. 从标准卷积到转置卷积:理解编码-解码的对称性 第一次接触转置卷积时,我和大多数开发者一样困惑:为什么要在神经网络里做"反卷积"?直到在图像分割项目中踩了坑才发现,这其实是理解现代CNN架构对称性的关键…...
基于Simulink的2ASK调制解调系统建模与性能对比分析
1. 2ASK调制解调系统基础入门 第一次接触通信系统仿真时,我被各种调制方式搞得头晕眼花。直到用Simulink搭建了第一个2ASK模型,才发现原来通信原理可以这么直观。**2ASK(二进制幅移键控)**是最基础的数字调制方式之一,…...
产品经理的AI副驾:我是如何用墨刀AI Agent一周完成三个竞品分析报告的
产品经理的AI副驾:如何用墨刀AI Agent高效完成竞品分析 最近在负责一个新项目时,我遇到了一个典型的产品经理困境:需要在极短时间内完成三款竞品的深度分析报告。按照传统方法,光是收集资料、整理对比表格就需要耗费大量时间&…...
Vivado Aurora 8B/10B IP核实战:从配置到上板测试的完整避坑指南
Vivado Aurora 8B/10B IP核实战:从配置到上板测试的完整避坑指南 在高速串行通信领域,Xilinx的Aurora 8B/10B协议因其轻量级、低延迟和高可靠性特点,已成为FPGA开发者实现板间高速互联的首选方案。本文将基于Kintex-7开发板,深入解…...
