开发必备知识:通过网站架构演进与计算机网络模型深入理解“网关”、“正向代理”、“反向代理”含义

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 反向代理与网关都是从网站架构中发展而来的产物,原来在Web1.0与Web2.0时代,一般都用反向代理,采用前置反向代理来完成反向路由、负载均衡、日志监控、缓存、兼容熔断等功能,常见的就是Nginx等等,反向代理一般采用静态配置,是因为Web时代中网站更新换代是不快的。

目前网络中流行的技术架构


反向代理与网关都是从网站架构中发展而来的产物,原来在Web1.0与Web2.0时代,一般都用反向代理,采用前置反向代理来完成反向路由、负载均衡、日志监控、缓存、兼容熔断等功能,常见的就是Nginx等等,反向代理一般采用静态配置,是因为Web时代中网站更新换代是不快的。


现在进行到了Web3.0时代,也就是微服务时代,由于应用形态变化,出现了大量提供的API服务,这些API服务升级更新频率很高,对动态配置、路由、负载均衡要求很高。那么传统的代理配置就有很大缺点了,一是更不上较快的动态配置、路由更新等产品需求,二是传统的代理方式效率低下,运维团队无法做到自主的配置。这个时候网关就应用而生了。


网关一般面向API和微服务,提供更灵活的配置能力来面对产品需求,例如Zuul。来解决持续交付、动态配置的主要问题。网关和反向代理的功能其实是大同小异的。

又过了一段发展时期,迎来了云原生时代,那么云原生这个时代,对动态配置、持续交付、负载均衡、大数据处理、云端存算等功能实际上是必须的。需要对网关动态可配置、动态可编程。目前将网关与反向代理融合配置,产生了统一代理的产品,构成了云原生目前的架构基础,这些统一代理的产品,可以当网关用,也可以当反向代理来用,兼容多种高性能的功能。

网关


1、网关的定义

网关,Gateway、又称网间连接器、协议转换器。

网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。


网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器,与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。


通俗点来理解的话,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。也就是网络关卡。Gate在英文中就是大门的意思。

2、网关的作用

网关是设备与路由器之间的桥梁,由它将不同的网络间进行访问的控制,转换,交接等等。

比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。

网络代理


1、正向代理

首先需要知道的是,目前整个因特网网络都是建立在TCP/IP协议栈的基础之上的。

正向代理:是指用户利用代理服务器访问目标服务器。也就是说,代理服务器的代理对象是用户。如下图所示。

2、正向代理的作用

1、简单的来说,正向代理可以让我们访问一些我们并不能直接访问的资源服务。

打个比方来说,我们在饿了么上面,是不能直接购买香烟等产品的,但是我们可以通过骑手跑腿代购,让骑手帮忙买了香烟之后,再来送给我们。


在这个过程中,骑手跑腿就可以理解为 正向代理,让我们间接的访问资源。


在网络中,比较常见的是网游加速器,比如“吃鸡绝地求生”,这种外国游戏的服务器一般在国外,那么如果我们通过国内的家庭网络直接去进行游戏,那么肯定会有各种网络问题,丢包、延迟、重连等等各种问题都会接踵而来,顾名思义就是延迟、掉帧、卡顿感。那么网络厂商又是如何解决该问题的呢?是通过增加代理服务器来优化这种网络连接的,通过代理服务器,我们可以连上较好的网络,解决这些问题。

3、反向代理及作用

反向代理的对象则是 目标服务器。是指服务端利用代理服务器给用户提供服务。


和正向代理相比,二者都是利用代理服务器实现的,不过反向代理的主语是服务端,所以说反向代理对于用户来说是透明的,在用户的视野里,代理服务器便是目标服务器。


还是拿外卖做比方:类似饿了么『专星送』服务,我们(用户)在想喝咖啡的时候,并不需要知道我们附近哪个广场哪个角落有家星巴克(目标服务器),我们只需要打开专星送(代理服务器),直接下单就是,其会自动分配合适的门店为我们提供咖啡。


从上面的例子可以想到,反向代理在实际应用可以起到保护和隐藏真正提供服务的那个星巴克门店,也可以在区域分店爆单或者停业时,对用户的需要提供负载均衡,自动派单给相近的门店。

如何实现代理?


接下来通过计算机网络模型来深入了解代理的实现过程:

1、四层代理

四层代理(L4 Switch 四层交换)这个四层指的便是『运输层』,我们的四层代理服务器在接收到数据报文后会进行拆包工作,且只做到第4层运输层。在运输层拆包拿到的数据报文,除了包括应用层需要的数据报文,在标头信息中包括了端口信息,再结合网络层拆包所得的 IP,通常是根据这个 IP+PORT 得到实际的目标服务器信息,再修改报文的 IP 地址为目标服务器的 IP 地址信息。所以说,如果数据报文是个 TCP 连接,客户端最终将与真实的目标服务器建立连接。


2、七层代理

七层代理便是指拆包到应用层后,再根据应用层数据特征来判断目标服务器。例如,Nginx 便是我们经常用来搭建七层代理的服务器软件,我们在访问一个 URL 里,Nginx 会根据 URL 进行判断,分配请求到目标服务器因为七层代理依赖应用层信息,所以用户在访问网站的时候,会先与七层代理服务器三次握手建立连接,再发送具体的请求报文给代理服务器,代理服务器再跟目标服务器三次握手建立连接,然后由代理服务器来访问目标服务器。


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
2天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
9 2
|
4天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
18 4
|
2天前
|
运维 网络协议 算法
7 层 OSI 参考模型:详解网络通信的层次结构
7 层 OSI 参考模型:详解网络通信的层次结构
7 1
|
10天前
|
监控 安全 应用服务中间件
微服务架构下的API网关设计策略与实践####
本文深入探讨了在微服务架构下,API网关作为系统统一入口点的设计策略、实现细节及其在实际应用中的最佳实践。不同于传统的摘要概述,本部分将直接以一段精简的代码示例作为引子,展示一个基于NGINX的简单API网关配置片段,随后引出文章的核心内容,旨在通过具体实例激发读者兴趣,快速理解API网关在微服务架构中的关键作用及实现方式。 ```nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://backend_service:5000;
|
12天前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
30 3
|
12天前
|
存储 缓存 监控
探索微服务架构中的API网关模式
探索微服务架构中的API网关模式
29 2
|
13天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
14天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
36 2
|
18天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
62 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型