nginx负载均衡

nginx负载均衡

负载均衡:主要是由反向代理来实现的。

nginx的七层代理和四层代理

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

七层代理

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

七层代理的工作流程

客户端 ——> http请求 ——> 七层代理(代理服务器上)——> 代理服务器转发http请求到内部的一组服务器(web集群)——> 客户端不知道请求的代理服务器还是内部服务器,而且通过代理服务器隐藏了内部服务器的IP地址。

实际上访问的是代理服务器,请求到代理,代理转发给web服务器。web服务器响应。

四层代理

四层代理是基于tcp/ip协议层的代理转发方式,

四层代理的工作流程

四层代理是基于tcp/ip协44

议层的代理转发方式,可以实现基于ip地址和端口进行负载均衡转发。四层代理无法获取http请求当中的URL信息,只能对tcp/udp数据包进行转发。属于流量转发。stream模块,不能写在http模块中,只能配置在全局中。是属于一个独立的模块,不属于其他任何模块。

四层代理和七层代理的区别

1、七层走的是http请求,四层走的是tcp/udp数据包,转发的是流量。

2、七层代理可以对请求进行深入的解析和处理,流量控制,内容的过滤。而四层代理不能进行流量控制与内容过滤。

3、七层代理一般用于对请求进行控制和精确处理的场景。

四层代理一般用于处理大量请求的场景。

4、四层代理的速度比七层代理快

四层代理是流量转发,不能对请求进行进行和处理,同时它走的是内核,所以速度快。而七层代理需要对数据进行解析和处理,同时走的是用户态,所以速度较慢。

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

反向代理:客户端访问代理服务器,代理服务器转发请求或者流量到后端服务器,后端的web服务器会有多台,用户并不知道最终访问的是哪一台服务器。

反向代理的作用:负载均衡,高可用,可扩展,可维护性。

负载均衡的算法

1.默认算法:轮询(rr)算法 请求轮流分配给后端服务器,轮询算法主要使用在web服务器处理能力相近的情况,默认算法,可以不加。

upstream ky30 {
server 192.168.233.62;
server 192.168.233.63;
}
#指定通过代理服务器本机,会把http的请求转到62或者63上。

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

upstream ky30 {
server 192.168.233.62 weight=2;
server 192.168.233.63 weiget=3;
}
#通过代理服务器本机,转发http请求时,会往权重高的服务器上,转发的次数多。权重的转发的就少。

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

upstream ky30
ip_hash;
server 192.168.233.62;
server 192.168.233.63;

4、最少连接数least_conn:轮询,会将请求发送到当前连接数最少的后端web服务器。适用于后端服务器处理任务耗时不同的情况,避免了所有请求集中在处理能力更强的后端服务器上。会和加权轮询配合使用。

upstream ky30
least_conn;
server 192.168.233.62weight=2;
server 192.168.233.63weight=3;

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

upstream ky30
hash $resquest_uri consistent;
server 192.168.233.62 weight=2;
server 192.168.233.63 weight=3;

使用场景

小场景:并发量很小,默认算法就可以满足适应条件

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

大型并发:ip_hash,url hash。库建立缓存,降低后端服务器的荷载。

实验:已域名的方式实现负载均衡

配置代理服务器

将域名写入地址映射文件

配置第一台后端服务器

配置第二台后端服务器

 

 配置客户端

测试访问是否有问题

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云轻量应用服务器端口怎么打开?图文方法来了

腾讯云轻量应用服务器端口放行在哪设置?在防火墙中可以开启端口号,腾讯云轻量应用服务器端口怎么开通?在轻量服务器管理控制台的防火墙中开启端口,如果是CVM云服务器在安全组中开通,腾讯云服务器网以轻量应用服务器开通…

(6)将Mission Planner连接到Autopilot

文章目录 前言 6.1 设置连接 6.2 故障处理 6.3 复合连接的故障处理 6.4 相关话题 前言 本文解释了如何将 Mission Planner 连接到自动驾驶仪上,以便接收遥测数据并控制飞行器。 !Note 对于已有 ArduPilot 固件的安装,或没有现有 Ardu…

设计模式(5)代理模式

一、介绍: 【Subject/抽象角色】定义了RealSubject和Proxy的共用接口,这样就可以在任何使用RealSubject的地方都可以使用Proxy 【RealSubject/真实角色】定义Proxy所代表的真实实体 【Proxy/代理角色】保存一个引用使得代理可以访问实体,并…

PE半透明屏是怎么制造的?工艺、材料、应用

PE半透明屏是一种新型的屏幕材料,具有半透明的特点。 它由聚乙烯(PE)材料制成,具有良好的透明度和柔韧性。PE半透明屏广泛应用于建筑、广告、展览等领域,具有很高的市场潜力。 PE半透明屏的特点之一是其半透明性。 它…

MyBatis Plus-个人笔记

前言 学习视频 尚硅谷-Mybatis-Plus教程学习主要内容 本文章记录尚硅谷-Mybatis-Plus教程内容,只是作为自己学习笔记,如有侵扰请联系删除 一、MyBatis-Plus简介 1、简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具&#…

识别和应对内存抖动

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、案例分析3.1 使用memory-profiler3.2 使用 cp…

基于组合双向拍卖的共享储能机制研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 2.1 算例数据 2.2 买家中标 2.3 卖家中标 🎉3 文献来源 🌈4 Matlab代码实现 💥1 概述 文献来源: 摘要:为满足共享储能中储能用户的互补性和替代性需求、解决常规单…

直接在html中引入Vue.js的cdn来实现Vue3的组合式API

Vue3的组合式API是使用setup函数来编写组件逻辑的。setup函数是Vue3中用于替代Vue2的选项API(如data、methods等)的一种方式。在setup函数中,你可以访问到一些特殊的响应式对象,并且可以返回一些可以在模板中使用的数据、方法等。…

Vc - Qt - QToolButton

QToolButton 是 Qt 框架中的一个类,是 QPushButton 的子类。它可以显示一个可单击的按钮,并且可以与弹出菜单、图标和文本等进行关联。 QToolButton的一些常见特性和用法包括: 设置文本:使用 setText() 函数设置按钮上的文本。设置…

React源码解析18(4)------ completeWork的工作流程【mount】

摘要 经过上一章,我们得到的FilberNode已经具有了child和return属性。一颗Filber树的结构已经展现出来了。 那我们最终是想在页面渲染真实的DOM。所以我们现在要在completeWork里,构建出一颗离屏的DOM树。 之前在说FilberNode的属性时,我们…

以商业大数据技术助力数据合规流通体系建立,合合信息参编《数据经纪从业人员评价规范》团标

经国务院批准,由北京市人民政府、国家发展和改革委员会、工业和信息化部、商务部、国家互联网信息办公室、中国科学技术协会共同主办的2023 全球数字经济大会于近期隆重召开。由数交数据经纪(深圳)有限公司为主要发起单位,合合信息…

Kubernetes Service 工作原理

本文介绍了 Kubernetes Service 的概念、原理和具体使用。 作者:沈亚军 爱可生研发团队成员,负责公司 DMP 产品的后端开发,爱好太广,三天三夜都说不完,低调低调… 本文来源:原创投稿 爱可生开源社区出品&am…

机器视觉项目流程和学习方法

机器视觉项目流程: 00001. 需求分析和方案建立 00002. 算法流程规划和业务逻辑设计 00003. 模块化编程和集成化实现 00004. 调试和优化,交付客户及文档 学习机器视觉的方法: 00001. 实战学习,结合项目经验教训 00002. 学习…

IDEA项目实践——Spring框架简介,以及IOC注解

系列文章目录 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介 IDEWA项目实践——mybatis的一些基本原理以及案例 IDEA项目实践——动态SQL、关系映射、注解开发 文章目…

(贪心) 剑指 Offer 14- I. 剪绳子 ——【Leetcode每日一题】

❓剑指 Offer 14- I. 剪绳子 难度:中等 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n > 1 并且 m > 1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m…

【问题记录】antd icons报rev属性缺失错误

闲来无事将项目中的antd从v4升级到了v5&#xff0c;之前正常的页面中如有图标&#xff0c;如<PlusOutlined />&#xff0c;总是报以下错误&#xff1a; TS2741: Property rev is missing in type {} but required in type Pick<AntdIconProps, "name" …

mac-右键-用VSCode打开

1.点击访达&#xff0c;搜索自动操作 2.选择快速操作 3.执行shell脚本 替换代码如下&#xff1a; for f in "$" doopen -a "Visual Studio Code" "$f" donecommand s保存会出现一个弹框&#xff0c;保存为“用VSCode打开” 5.使用

畜牧虚拟仿真 | 鱼授精过程VR模拟演练系统

随着科技的发展&#xff0c;虚拟现实(VR)技术逐渐渗透到各个领域&#xff0c;为人们提供了更加真实、直观的体验。在动物养殖教育领域&#xff0c;鱼授精过程VR模拟演练系统正成为一种新的教学手段&#xff0c;它能够帮助人们更好地理解和掌握鱼授精的操作技巧&#xff0c;从而…

Flask 框架集成Bootstrap

前面学习了 Flask 框架的基本用法&#xff0c;以及模板引擎 Jinja2&#xff0c;按理说可以开始自己的 Web 之旅了&#xff0c;不过在启程之前&#xff0c;还有个重要的武器需要了解一下&#xff0c;就是著名的 Bootstrap 框架和 Flask 的结合&#xff0c;这将大大提高开发 Web …

【C++常见八股1】内存布局 | 参数压栈 | 构造析构调用 | 空类大小

内存布局 .text 代码段&#xff1a;存放二进制代码、字符串常量.data 段&#xff1a;存放已初始化全局变量、静态变量、常量.bss 段&#xff1a;未初始化全局变量&#xff0c;未初始化静态变量heap 堆区&#xff1a;new/malloc 手动分配的内存&#xff0c;需要手动释放stack 栈…