首页 > 其他分享 >四层反向代理和七层反向代理

四层反向代理和七层反向代理

时间:2024-06-07 20:22:41浏览次数:24  
标签:负载 七层 代理 四层 反向 均衡 服务器

1、概述

  代理也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。 

2、四层网络代理

  如果说网络层通信的粒度是物理终端设备的话,IP就是标记不同物理设备的符号,那么传输层通信的粒度是进程,端口就是标记不同进程的符号。

  四层代理的四层就是OSI七层模型中的传输层;四层代理是基于IP+端口做的代理。四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器。

  以常见的TCP为例,从三次握手的第一次握手开始,代理设备在接收到第一个来自客户端的SYN 请求时,即按照一定的策略选择一个被代理的后端服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。只不过在后端机器上看到的都是与代理机的IP的established而已。

  TCP连接建立,即三次握手,实际上是客户端和后端服务器建立的,代理设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

  代表软件:LVS、F5。

          

3、七层网络代理

  七层代理的七层就是OSI七层模型中的应用层;七层代理是基于内容数据做的代理(理解应用层中的应用数据),最终的转发规则取决于内容的差异。鉴于七层应用协议非常广泛,现在的七层代理主要是指HTTP代理。

  和四层代理不同的是,七层代理必须要先和代理设备三次握手后,才能得到七层(HTTP层)的具体内容,然后再转发。意思就是代理机必须要与客户端和后端服务器的机器都要建立连接。显然,七层代理对代理设备的性能要求要高于四层代理。

  我们常使用的Nginx,用作代理服务器的时候,一般都是工作在第七层的。使用Nginx,我们可以代理静态文件、ajax后台接口、CDN重定向等等,都是在传输层之上理解内容后做的工作。

  七层应用负载的好处,是使得整个网络更智能化。例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意意义上的修改,极大的提升了应用系统在网络层的灵活性。很多在后台,例如Nginx或者Apache上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。

  另外一个常常被提到功能就是安全性。网络中最常见的SYN Flood攻击,即黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文,例如SQL Injection等应用层面的特定攻击手段,从应用层面进一步提高系统整体安全。

  现在的七层代理,主要还是着重于应用HTTP协议,所以其应用范围主要是众多的网站或者内部信息平台等基于B/S开发的系统。四层代理则对应其他TCP应用,例如基于C/S开发的系统。

  代表软件:Nginx、Haproxy。

          

 4、四层网络代理和七层网络代理区别

   根据上文对四层网络代理和七层网络代理介绍可以,它俩最直观的区别是四层代理只进行了一次TCP请求,而七层代理进行了两次TCP请求。

4.1 四层网络代理

  所谓四层网络代理,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

  以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

4.2 七层网络代理

  所谓七层网络代理,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

  以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。

5、现在对网络代理的使用是随着网站规模的提升根据不同的阶段来使用不同的技术

  第一阶段:利用Nginx或HAProxy进行单点的负载均衡,这一阶段服务器规模刚脱离开单服务器、单数据库的模式,需要一定的负载均衡,但是仍然规模较小没有专业的维护团队来进行维护,也没有需要进行大规模的网站部署。这样利用Nginx或HAproxy就是第一选择,此时这些东西上手快, 配置容易,在七层之上利用HTTP协议就可以。这时是第一选择。

  第二阶段:随着网络服务进一步扩大,这时单点的Nginx已经不能满足,这时使用LVS或者商用Array就是首要选择,Nginx此时就作为LVS或者Array的节点来使用,具体LVS或Array的是选择是根据公司规模和预算来选择,Array的应用交付功能非常强大,性价比也远高于F5,商用首选,但是一般来说这阶段相关人才跟不上业务的提升,所以购买商业负载均衡已经成为了必经之路。

  第三阶段:这时网络服务已经成为主流产品,此时随着公司知名度也进一步扩展,相关人才的能力以及数量也随之提升,这时无论从开发适合自身产品的定制,以及降低成本来讲开源的LVS,已经成为首选,这时LVS会成为主流。

  最终形成比较理想的基本架构为:Array/LVS — Nginx/Haproxy — Squid/Varnish — AppServer。

https://blog.csdn.net/vah101/article/details/121617249

https://www.cnblogs.com/buray/p/16294778.html

参考:跟字节大佬聊了下四层代理和七层代理,我人傻掉了

参考:4层代理和7层代理的区别

标签:负载,七层,代理,四层,反向,均衡,服务器
From: https://www.cnblogs.com/zhangmingcheng/p/18237278

相关文章

  • Java 的动态代理是基于什么原理?
    Java的动态代理是基于以下原理实现的:代理模式:代理模式是一种设计模式,通过创建一个代理对象来控制对真实对象的访问。代理对象可以在调用真实对象之前或之后增加额外的逻辑,比如权限验证、记录日志等。代理模式的主要目的是在不修改原有代码的基础上,扩展对象的行为。动......
  • SCT53600TVB具有反向电流保护的理想二极管控制器
     4.7V至65V工作范围· –65V反向额定电压· 用于外部N沟道MOSFET的电荷泵· 20mV正向压降调节· 12V栅极驱动电压· 带启用输入· 驱动高侧外部N沟道MOSFET· 1μA关断电流(EN=低)· 60μA工作静态电流(EN=高)· 2.3-A峰值门关断电流· 0.75us内快......
  • 抖音外卖区域代理需要多少钱?入局成本如何计算?
    随着抖音外卖的日益火爆和抖音外卖平台全国代理的退场,想要申请抖音外卖平台区域代理的人数不断上涨。但是,创业毕竟不是儿戏,每一个决定都需要经过权衡利弊。而就做抖音外卖区域代理这一项目而言,抖音外卖平台区域代理需要多少钱才能成功入局便是创业者们需要考虑的首要问题。而......
  • 新手如何正确使用代理IP,一篇文章学会,包含实战案例
    前言一、代理IP1.1什么是代理IP?1.2代理ip分类1.3代理IP的作用和优势二、更换代理IP的方法2.1重启路由器或光猫2.2用拨号vps重拨更换动态IP代理。2.3使用浏览器更换IP三、IPIDEA代理的优势四、提取代理IP4.1提取步骤4.2浏览器使用代理IP五、使用代理IP获......
  • IP代理池是什么?
    从事跨境行业的朋友们总会有一个疑问,为什么自己所合作的IP代理商的IP在使用的过程中账号会有莫名封禁的问题,会不会是自己在使用的过程中错误的操作违反了平台的规则,其实不然有可能会是IP代理池纯净度不高的问题,有可能自己在使用的IP代理池已经被污染或是其他人用过的已用标签的......
  • 动态代理学习记录
    目录1.代理模式2.静态代理3.动态代理3.1JDK动态代理1.代理模式Java动态代理与设计模式中的代理模式有关,什么是代理模式呢?代理模式:给某一个对象提供一个代理,并由代理对象来控制对真实对象的访问。代理模式是一种结构型设计模式。代理模式有什么用?作用:通过代理可......
  • 51单片机独立按键控制流水灯,按一次左流水,再按一次反向流水
    1、功能描述独立按键控制流水灯,按一次左流水,再按一次反向流水2、实验原理单片机的I/O口可以通过编程设置为输入或输出模式。在流水灯实验中,我们将I/O口配置为输出模式,用于控制LED灯的亮灭。同时,我们还需要一个输入口来检测按键的状态,以实现按键控制流水灯的功能。流水灯的效......
  • Hershell反向shell生成器+msf加密通信免杀
    转自:https://www.cnblogs.com/Chuantouli/p/12298579.html简介 Hershell1Hershell(<ahref="github.com/sysdream/hershell" target="_blank" rel="noopener">github.com/sysdream/hershell</a>)是基于golang开发的一款反向shell生成......
  • 通过端口复用直接进行正向tcp代理--win会被识别为病毒
    学习项目,win会被识别为病毒,关闭病毒和威胁防护,参考https://blog.csdn.net/u_say2what/article/details/134669122main.gopackagemainimport( "context" "fmt" _"golang.org/x/sys/unix" "golang.org/x/sys/windows" "io" "......
  • 从提示工程到代理工程:构建高效AI代理的策略框架概述
    自ChatGPT推出以来,仅仅一年多的时间里,公众对于“人工智能”(AI)的认识已经发生了根本性的变化。这种变化部分源于公众意识的提高,更多则是基于这样一个认识:AI驱动的系统不仅可能,而且可能已经具备了与人类相当的能力和表现。ChatGPT不仅是AI能力的一个验证,更是半个多世纪以来AI研究成......