Nginx 负载均衡
Nginx 负载均衡
负载均衡由反向代理来实现的
其中反向代理分为七层代理和四层代理,一般常用的是七层代理,接下来分别介绍一些
NGINX 七层代理
七层是最常用的反向代理方式,只能配置在Nginx配置文件的http模块。
配置方法名称:upstream 模块
不能写在server中,也不能在location中,在http模块当中是独立的一个配置;七层代理的就是http请求和响应
工作流程
客户端 —— http请求 —— 七层代理(代理服务器上) ——代理服务器转发http请求到内部的一组服务器 (web集群)
客户端不知道请求的代理服务器还是内部服务器,而且代理服务器影藏了内部服务器的IP地址
实际上访问的是代理服务器,请求到代理后转发给web服务器,最后由web服务器响应给客户端
NGINX 四层代理
四层代理是基于TCP/IP 协议层的代理转发方式,可以实现基于IP地址和端口进行负载均衡转发
四层代理无法获取http请求当中的URL信息,只能对 TCP/UDP 数据包进行转发 —— 流量转发
配置方法名称:stream
stream 是不能配置在http模块中,配置在全局当中属于一个独立的模块,不属于其他任何模块
四层与七层区别 *面
- 七层走的是http请求,四层走的tcp/udp的数据包,转发的是流量;可以对请求进行深入的解析和处理,流量控制,内容的过滤;七层对请求进行精确处理和控制的场景。
- 四层代理不能进行流量控制,也没办法对内容进行过滤;四层代理通常适用于需要处理大量连接请求的场景
在实际中,四层和七层可以配合使用
四层与七层的速度
四层代理速度比七层代理速度快
- 四层只是流量转发,不能对请求进行解析和控制;所以速度快
- 四层代理走的是内核,内核转发的流量,所以速度快
- 七层对请求进行处理和解析,速度比较慢
- 七层走的是用户态,访问控制,流量处理,所以速度比较慢七层代理可以提供更高级的服务和更高的用户体验。
反向代理
客户端访问代理服务器,代理服务器转发请求流量到后端服务器,后端的web服务器会有多台,用户并不知道最终访问的是哪一台服务器
作用:负载均衡 高可用 可扩展 提高可维护性
算法
Upstream:基于https实现负载均衡,反向代理
1、轮询算法 rr(默认算法)
http请求的负载均衡方式、没有缓存、负载均衡的算法;请求轮流分配给后端服务器,轮询算法使用与web服务器处理能力相近的情况,默认算法可以不加
2、加权轮询
建立在轮询算法的基础之上,通过给不同的web服务器权重,让处理能力更强的服务器可以分配到更多的请求;虽然配置了权重值,但是轮询的结果未必准确
3、ip_hash
根据IP地址计算出一个hash值,使用ip hash算法,同一个客户端的请求会被分配到同一个后端服务器、保证会话的稳定性;后端服务器的数量发生变化,hash会被重新计算,请求的服务器也会发生变化
4、least_cnn
最少连接数也会轮询,请求发送到当前连接数最少得后端web服务器;通常适用于后端服务器处理任务耗时不同的情况,避免了所有请求集中在处理能力更强的后端服务器上;通常会和加权轮询配合使用
5、ur_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 负载均衡
Nginx 负载均衡 负载均衡由反向代理来实现的 其中反向代理分为七层代理和四层代理,一般常用的是七层代理,接下来分别介绍一些 NGINX 七层代理 七层是最常用的反向代理方式,只能配置在Nginx配置文件的http模块。 配置方法名称:…...
Java课题笔记~ ServletConfig
概念:代表整个web应用,可以和程序的容器(服务器)来通信 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://java.sun.com/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…...
oracle的异常处理
oracle提供了预定义例外、非预定义例外和自定义例外三种类型。其中: l预定义例外用于处理常见的oracle错误; l非预定义例外用于处理预定义所不能处理的oracle错误; l自定义例外处理与oracle错误无关的其他情况。 Oracle代码编写过程中&am…...
【MySQL】MySQL数据类型
文章目录 一、数据类型的分类二、tinyint类型2.1 创建有符号数值2.2 创建无符号数值 三、bit类型三、浮点类型3.1 float3.2 decimal类型 四、字符串类型4.1 char类型4.2 varchar类型 五、日期和时间类型六、枚举和集合类型6.1 enum的枚举值和set的位图结构6.2 查询集合find_in_…...
【数据结构与算法】十大经典排序算法-希尔排序
🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…...
docker 常用命令
1. 搜索并下载镜像 docker search bundlefusion # 搜索docker pull jhljx/bundlefusion # 将远程仓库文件下载到本地2. 用镜像创建容器 docker run -it --namebundlefusion colec777/bundlefusion-cu11.4-cudagl:v8 /bin/bash # 创建并运行 exit # 退出终端 sudo docker cont…...
uniapp微信小程序中打开腾讯地图获取用户位置信息
实现的效果 第一步:首先登录微信公众平台 , 需要用到AppID 第二步: 注册登录腾讯位置服务 注册需要手机号和邮箱确认,然后创建应用 创建后点击添加key 添加后会生成key,后面会用到这个key 第三步: 登录微信公众平台&a…...
嵌入式领域:人才供需失衡,发展潜力巨大
嵌入式技术正快速发展,ARM处理器、嵌入式操作系统、LINUX等技术助力嵌入式领域崛起。然而,行业新颖且门槛高,缺乏专业指导。因此,嵌入式人才稀缺,身价水涨船高。 未来几年,嵌入式系统将在信息化、智能化、…...
python 书籍
python高手进阶之路 10册 QQ:417398600...
Debian纯净系统安装php常用扩展和程序
适用于 php-fpm debian容器 mysql扩展 docker-php-ext-install pdo_mysql docker-php-ext-install mysqliredis扩展 pecl install redis docker-php-ext-enable redis# pecl无法装就: docker-php-source extract # 创建并初始化 /usr/src/php目录(扩展…...
vue+element中如何设置单个el-date-picker开始时间和结束时间关联
功能:选了开始时间,则结束时间只能选择开始时间之后的;选了结束时间,则开始时间只能选择结束时间之前的 重点是picker-options属性 图示: 代码展示: // body 内部<el-form-item><el-date-pickerv-model&qu…...
二次封装ajax和axios
ajax app.config.globalProperties.$http function(url, method, data, async, fun) {$.ajax({url: baseUrl url, //请求地址type: method, //请求方式dataType: json, //数据类型contentType: "application/json",xhrFields: { //跨域设置withCredentials: t…...
Android进阶之SeekBar动态显示进度
SeekBar 在开发中并不陌生,默认的SeekBar是不显示进度的,当然用吐司或者文案在旁边实时显示也是可以的,那能不能移动的时候才显示,默认不显示呢,当然网上花哨的三方工具类太多了,但是我只是单纯的想在SeekBar的基础上去添加一个可以跟随移动显示的气泡而…...
企业计算机服务器中了locked勒索病毒怎么办,如何预防勒索病毒攻击
计算机服务器是企业的关键信息基础设备,随着计算机技术的不断发展,企业的计算机服务器也成为了众多勒索者的攻击目标,勒索病毒成为当下计算机服务器的主要攻击目标。近期,我们收到很多企业的求助,企业的服务器被locked…...
大麦订单截图 一键生成订单截图
新版付款图样式展示 这个样式图就是在大麦刚付款完的一个订单截图,它的状态是等待卖家发货 下滑下载源码 下载源码:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3...
LLaMA长度外推高性价比trick:线性插值法及相关改进源码阅读及相关记录
前言 最近,开源了可商用的llama2,支持长度相比llama1的1024,拓展到了4096长度,然而,相比GPT-4、Claude-2等支持的长度,llama的长度外推显得尤为重要,本文记录了三种网络开源的RoPE改进方式及相…...
中国信息安全测评中心CISP家族认证一览
随着国家对网络安全的重视,中国信息安全测评中心根据国家政策、未来趋势、重点内容陆续增添了很多CISP细分认证。 今日份详细介绍,部分CISP及其子品牌相关认证内容,一定要收藏哟! 校园版CISP NISP国家信息安全水平考试ÿ…...
牛客网【面试必刷TOP101】~ 06 递归/回溯
牛客网【面试必刷TOP101】~ 06 递归/回溯 文章目录 牛客网【面试必刷TOP101】~ 06 递归/回溯[toc]BM55 没有重复项数字的全排列(★★)BM56 有重复项数字的全排列(★★)BM57 岛屿数量(★★)BM58 字符串的排列(★★)BM59 N皇后问题(★★★)BM60 括号生成(★★)BM61 矩阵最长递增路…...
ArcGIS Pro基础:【划分】工具实现等比例、等面积、等宽度划分图形操作
本次介绍【划分】工具的使用,如下所示,为该工具所处位置。使用该工具可以实现对某个图斑的等比例面积划分、相等面积划分和相等宽度划分。 【等比例面积】:其操作如下所示,其中: 1表示先选中待处理的图斑,2…...
括号匹配问题:栈的巧妙应用与代码优化【栈、优化、哈希表】
当解决算法问题时,灵活使用数据结构是至关重要的。在这个问题中,我们需要判断一个只包含括号的字符串是否有效,即括号是否能够正确匹配和闭合。使用栈这一数据结构可以很好地解决这个问题。 题目链接:有效的括号 解题思路…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...



















