nginx七层代理和四层转发的理解

先来理解一下osi七层模型

应用层             应用层是ISO七层模型的最高层,它直接与用户和应用程序交互,提供用户与网络的接口。它包括各种应用协议,如HTTP、FTP、SMTP等,用于实现特定应用的功能和通信表示层             表示层负责数据的格式转换、加密和压缩,以确保不同系统之间的数据格式兼容性,并提供数据安全和加密功能会话层             会话层负责建立、管理和终止会话(Session)或连接。它提供了会话的同步、管理和恢复功能,以确保不同应用程序之间的通信顺利进行传输层             传输层负责端到端的数据传输和可靠性。它提供了传输控制协议(TCP)和用户数据报协议(UDP)等传输协议,用于实现可靠的数据传输、流量控制和错误恢复网络层             网络层负责在不同的网络之间进行路由和转发,以确保数据能够正确地从源节点传输到目标节点。它处理逻辑地址(如IP地址),选择最佳路径,并进行分组和路由选择数据链路层      数据链路层位于物理层之上,负责在直接相连的节点之间传输数据。它将比特流划分为帧(Frame),并提供了错误检测、流控制和访问控制等功能,以确保可靠的数据传输物理层             物理层是ISO七层模型的最底层,负责在物理媒介上传输原始比特流。它定义了电压、电缆规范、物理连接和传输速率等物理特性

在了解一下接收数据包的工作流程

在防火墙接收到数据包后,因为用的是DNAT端口映射功能,所以用的是四层转发,按照osi七层模型从下往上拆包到四层,根据DNAT规则转发到后端的nginx上,nginx用的是HTTP七层代理,所以需要继续从四层拆包到七层,在根据nginx的规则转发到后端的服务

封包从上往下封装,且只有外网传输是需要封装安装包的,内网传输是不需要封装安装包的

数据包的拆包和封装主要发生在网络通信的边界处,尤其是在数据包从一个网络设备到另一个网络设备的过程中。当数据包跨越网络边界时,它们需要按照相应的协议规范进行拆包和封装,以适应不同的网络环境

在同一个内网环境中,如果数据包只是在内网中传输,没有经过网络边界,那么通常不需要进行显式的拆包和封装操作。例如,在内网中的数据包在经过网络交换机或路由器时,会根据目标设备的MAC地址或IP地址进行直接转发,而无需进行拆包和封装

nginx七层代理

nginx的七层代理作用于应用层,Nginx可以通过解析HTTP协议头部信息来处理和转发请求。它能够检查和修改HTTP请求和响应的头部,进行URL重写、反向代理、负载均衡、缓存、SSL终端等功能。通过这些功能,Nginx可以实现灵活的HTTP请求处理和流量分发

nginx使用七层代理,在接收到数据包后,需要将数据包按照osi七层模型从下往上拆包到七层,解析请求头和请求体,提取请求方法、URL、头部信息、有效负载数据等内容,nginx根据配置的策略,通过七层协议直接转发到后端的服务中,nginx的七层代理功能需要处理数据包中的数据,效率远远比不上四层转发的效率

nginx四层转发

nginx的四层转发作用于传输层,Nginx可以基于传输层协议(如TCP和UDP)进行流量转发。它可以接收客户端的传输层请求,并将其转发给后端服务器。这种四层转发通常用于负载均衡和高可用性方案,将传入的请求分发到多个后端服务器,以提高系统的性能和容错能力

nginx使用四层转发,在接收到数据包后,需要将数据包按照osi七层模型从下往上拆包到四层,提取出源IP地址、目标IP地址、源端口号和目标端口号等传输层信息,再根据配置的负载均衡算法和策略,转发给相应的目标服务器,在此过程中nginx不需要处理数据包中的数据,这使得Nginx在进行高性能的负载均衡和代理转发时能够快速、有效地处理大量的请求

关于高并发架构的讲解

在一个数据量特别大的高并发架构中,单纯使用nginx的七层代理是不够的,因为nginx的七层代理需要处理数据,在数据量大的时候,nginx的资源消耗就会特别高,很容易就会出现资源不足的情况,在此情况下,我们需要使用nginx的高可用架构,keepalived+lvs+nginx的架构,就能很好的应对高并发流量的情况,使用lvs的四层转发到后面的多个nginx中实现负载均衡,主要是四层转发不需要处理数据包中的数据,只做单纯的转发,不会出现主机资源不足的情况,所以可以处理大量的请求,通过四层转发到多个nginx后,nginx再通过七层代理功能去将数据转发到后端的服务中,具体的工作过程可以参考以上的解释,而keepalived的作用是实现lvs的高可用,lvs也可以使用haproxy代替,主要还是看数据量的大小

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学生成绩分析项目

数据采集 导入必要的库 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns加载数据集 df pd.read_csv(D:\\桌面\\数据\\student_marks.csv)显示数据框的前几行 # 显示数据框的形状 print("Shape of the dataframe:", df.shape)#显示…

【运维】GitLab相关配置优化等

默认 Git 设置 http post 的缓存为 1MB,使用命令将git的缓存设为500M,重新配置一下postBuffer值 git config --global http.postBuffer 524288000 解决方法2:直接修改config参数, windows: ./git/config中,加入以下…

Freertos-mini智能音箱项目---IO扩展芯片PCA9557

项目上用到的ESP32S3芯片引脚太少,选择了PCA9557扩展IO,通过一路i2c可以扩展出8个IO。这款芯片没有中断输入,所以更适合做扩展输出引脚用,内部寄存器也比较少,只有4个,使用起来很容易。 输入寄存器 输出寄存…

【Linux】高级IO(二)

文章目录 高级IO(二)I/O多路转接之pollpoll服务器 I/O多路转接之epollepoll相关函数epoll工作原理epoll回调机制epoll服务器epoll的优点 高级IO(二) I/O多路转接之poll poll也是系统提供的一个多路转接接口 poll系统调用也可以…

基于go-zero的api服务刨析并对比与gin的区别

zero路由与gin的区别 官网go-zero go-zero是一个集成了各种工程实践的微服务框架,集多种功能于一体,如服务主要的API服务,RPC服务等。除了构建微服务工程外,zero也是一款性能优良的web框架,也可以构建单体web应用。 …

最新AI创作系统V5.0.2+支持GPT4+支持ai绘画+实时语音识别输入+文章资讯发布功能+用户会员套餐

最新AI创作系统V5.0.2支持GPT4支持ai绘画实时语音识别输入文章资讯发布功能用户会员套餐! AI创作系统一、源码系统介绍二、AI创作系统程序下载三、安装教程四、主要功能展示五、更新日志 AI创作系统 1、提问:程序已经支持GPT3.5、GPT4.0接口 2、支持三种…

Maven 配置本地jar,通过下载第三方jar包,然后手动配置maven jar包依赖 例如:IKExpression

说明:有时候有一些jar包 maven中央仓库和阿里云仓库没有收录的jar包需要手动下载至本地进行手动添加maven依赖,就拿 IK表达式 IKExpression jar 包来说 第一步 下载IKExpression 包 没有这个包的同学可以点击下载阿里云盘分享 第二步 找到自己项目本地…

Redis 五种基本数据结构及基本使用

一、数据结构 二、使用 2.1 String 的使用 Redis String 一个键对应一个值,并且是二进制安全的,值可以是图片或者序列化后的对象。 一个键最大能存储 512 MB。 2.1.1 set 命令的使用 set key value127.0.0.1:6379> set name yunhu OK 127.0.0.1:…

二十三种设计模式第十四篇--策略模式

策略模式:主要围绕一个类的行为或者其算法在运行时更改,也是一种行为型模式。 在软件开发中,我们经常遇到需要根据不同的情况选择不同算法或行为的情况。传统的做法是使用大量的条件语句来实现这种逻辑,但这样的实现方式往往难以…

【花雕】全国青少年机器人技术一级考试备考实操搭建手册9

随着科技的不断进步,机器人技术已经成为了一个重要的领域。在这个领域中,机械结构是机器人设计中至关重要的一部分,它决定了机器人的形态、运动方式和工作效率。对于青少年机器人爱好者来说,了解机械结构的基础知识,掌…

[MySQL]MySQL表的约束

[MySQL]表的约束 文章目录 [MySQL]表的约束1. 约束的概念2. 空属性(null/not null)3. 默认值(default)4. 列描述(comment)5. 填充零(zerofill)6. 主键(primary key)7. 自增长(auto_increment)8. 唯一键(unique)9. 外键(foreign key) 1. 约束的概念 数据库通过技术手段限制数据的…

ADS笔记,新旧两组仿真数据进行绘图和列表对比

做个笔记,以防遗忘 ADS版本:2023 原理图器件参数的不同,怎么进行对比观看,操作如下 目录 一、数据绘图对比二、数据列表对比 一、数据绘图对比 选择Simulation Setting 然后修改原理图器件的参数,再次重复之前的操作…