iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >nginx七层代理和四层转发的理解
  • 338
分享到

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

nginx服务器网络 2023-08-31 06:08:38 338人浏览 八月长安
摘要

先来理解一下osi七层模型 应用层             应用层是ISO七层模型的最高层,它直接与用户和应用程序交互,提供用户与网络的接口。它包括各种应用协议,如Http、FTP、SMTP等,用于实现特定应用的功能和通信表示层     

先来理解一下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代替,主要还是看数据量的大小

来源地址:https://blog.csdn.net/ApexPredator/article/details/131576693

--结束END--

本文标题: nginx七层代理和四层转发的理解

本文链接: https://www.lsjlt.com/news/384342.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • nginx七层代理和四层转发的理解
    先来理解一下osi七层模型 应用层             应用层是ISO七层模型的最高层,它直接与用户和应用程序交互,提供用户与网络的接口。它包括各种应用协议,如HTTP、FTP、SMTP等,用于实现特定应用的功能和通信表示层      ...
    99+
    2023-08-31
    nginx 服务器 网络
  • Nginx七层及四层反向代理配置的全过程
    目录部署测试 http服务nginx反向代理 http服务nginx 通过 https反向代理 http服务Nginx Stream模块负载均衡测试准备测试用 https服务ngin...
    99+
    2024-04-02
  • Nginx 四层代理mysql、nacos、redis等服务——筑梦之路
    Nginx 七层和四层负载均衡——筑梦之路_nginx4层和7层负载均衡配置_筑梦之路的博客-CSDN博客 首先要明确的是mysql、nacos、redis等服务主要使用的是tcp协议,虽然也可以使用七层代理去暴露nacos服务,但仍然是有...
    99+
    2023-09-05
    nginx mysql redis
  • haproxy 7层负载均衡代理转发实战讲解
    HAProxy是一个开源的、高性能的负载均衡软件,可以用于将传入的请求分发到不同的后端服务器上,以实现高可用性和性能优化。在7层负载...
    99+
    2023-09-22
    haproxy
  • java开发MVC三层架构上再加一层Manager层原理详解
    目录MVC三层架构MVC架构弊端Manager层的特征Manager层使用案例MVC三层架构 我们在刚刚成为程序员的时候,就会被前辈们 “教育” 说系统的设计要遵循 MVC(Mode...
    99+
    2024-04-02
  • 软件开发架构介绍||OSI七层协议之物理
    一、网络编程  软件开发架构   C/S架构     C:客户端 想体验服务的时候才会去找服务端体验服务     S:服务端   24小时不间断的提供服务,即时监听,随时待命   B/S架构     B:浏览器    想体验服务的时候才会...
    99+
    2023-01-31
    架构 七层 物理
  • 四层负载均衡的原理是什么
    四层负载均衡的原理是在传输层(第四层)工作,它通过检测和管理传入的请求流量,将请求分发到多个服务器,以实现负载均衡和高可用性。其基本...
    99+
    2023-09-07
    负载均衡
  • Nginx反向代理转发tomcat的实现
    刚刚接触Nginx,记录下学习过程 先说正向代理,比如要访问youtube,但是不能直接访问,只能先找个翻墙软件,通过翻墙软件才能访问youtube. 翻墙软件就叫做正向代理。 所谓...
    99+
    2024-04-02
  • Nginx常用配置及代理转发
    Nginx配置及代理转发 nginx配置:配置分离:Nginx配置静态资源:Nginx配置转发其他应用:Nginx配置跨域访问:Nginx配置域名通配符访问:Nginx配置https:Nginx配置不同终端的转发: nginx配...
    99+
    2023-08-21
    nginx 服务器 运维
  • java开发MVC三层架构上再加一层Manager层原理的示例分析
    这篇文章主要为大家展示了“java开发MVC三层架构上再加一层Manager层原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java开发MVC三层架构上再加一层Manager层原理...
    99+
    2023-06-25
  • JavaScript 代理模式的深层解析:从理论到实践
    代理模式概述 代理模式是一种设计模式,它允许您创建一个代理对象,该代理对象作为另一个对象(称为目标对象)的代理或替代品。代理对象提供与目标对象相同的接口,但它可以增强、扩展或控制目标对象的访问和行为。 代理模式类型 代理模式有四种主要类...
    99+
    2024-03-09
    JavaScript、代理模式、对象包装、函数扩展、原型扩展
  • 用Nginx做端口转发(反向代理)
    本文中,我们介绍Nginx如何做端口转发,还有各种转发规则 将域名转发到本地端口 首先介绍最常用的,将域名转发到本地另一个端口上 server{ listen 80; server_name tomcat.shaochenfeng.c...
    99+
    2023-09-15
    nginx php 服务器 运维 linux
  • 结合Service层讲解DAO层的异常处理操作
    domain:只是定义一个javabean。 dao:对于数据库的操作,都放到dao层,也就是dao里面通常是对数据库的增、删、改、查等操作。 service:完成相应的业务逻辑处理...
    99+
    2024-04-02
  • Nginx 路由转发和反向代理location配置实现
    Nginx 配置的三种方式 第一种直接替换 location 匹配部分 第二种 proxy_pass 的目标地址,默认不带 /,表示只代理域名,url 和参数部分不会变(把请求的 ...
    99+
    2024-04-02
  • 【网络层+数据链路层】深入理解IP协议和MAC帧协议的基本原理
    文章目录 前言一、IP协议二、MAC帧协议 1.以太网2.以太网帧(MAC帧)格式报头3.基于协议讲解局域网转发的原理总结 前言 为什么经常将TCP/IP放在一起呢?这是因为IP层的核心工作就是通过IP地址来定位...
    99+
    2023-10-21
    tcp/ip 网络协议 网络 mac 数据链路层 网络层 路由器
  • [译] 从底层理解 Python 的执
    原文链接: Understanding Python execution from inside: A Python assembly tracer 以下为译文 最近我在学习 Python 的运行模型。我对 Python 的一些内部机制...
    99+
    2023-01-31
    底层 Python
  • Nginx反向代理转发tomcat怎么实现
    本篇内容主要讲解“Nginx反向代理转发tomcat怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Nginx反向代理转发tomcat怎么实现”吧!先说正向代理,比如要访问youtube,...
    99+
    2023-07-02
  • MySQL索引的底层原理怎么理解
    这篇文章主要介绍了MySQL索引的底层原理怎么理解的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL索引的底层原理怎么理解文章都会有所收获,下面我们一起来看看吧。Mysql 作为互联网中非常热门的数据库,...
    99+
    2023-07-04
  • 怎么理解.NET三层架构应用中的十层框架
    这篇文章给大家介绍怎么理解.NET三层架构应用中的十层框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。凡是接触.net开发的,***要理解的就是三层架构的重要思想。关于三层架构的概述 我就不多说了,相信大家都早已明白...
    99+
    2023-06-17
  • Docker基本概念和底层原理解析
    目录1、Docker的底层原理2、Docker中常用的基本概念3、run命令的运行流程4、为什么Docker比VM快Docker架构图: 我们依照Docker架构图进行Docker基...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作