当前位置: 首页 > article >正文

Day913.反向代理和网关是什么关系 -SpringBoot与K8s云原生微服务实践

反向代理和网关是什么关系

Hi,我是阿昌,今天学习记录的是关于反向代理和网关是什么关系的内容。

一、反向代理

反向代理 是一种网络技术,用于将客户端的请求转发到一个或多个服务器上,并将响应返回给客户端。与正向代理不同,反向代理隐藏了真实服务器的身份和网络地址,使得客户端无法直接访问服务器。

反向代理通常位于服务器集群的前端,用于接收来自客户端的请求,并根据预定的规则将请求路由到适当的后端服务器。这样可以实现负载均衡、高可用性、安全过滤等功能。此外,反向代理还可以缓存静态内容以加快网站的访问速度,减轻后端服务器的负载。

一些常见的反向代理软件包括NGINX、Apache、HAProxy等。


二、网关

API网关(API Gateway)是一个位于客户端和后端服务之间的服务器,用于管理和公开API(应用程序接口)。

API网关充当了客户端和后端服务之间的代理,负责路由请求、鉴别身份、监控使用情况、限流、缓存、加密、协议转换等功能。

通过API网关,客户端可以使用统一的API终端点来访问后端服务,而无需了解每个服务的具体实现细节。

同时,API网关可以提供多种安全机制,例如身份验证、授权、防火墙和DDoS攻击防护等。

API网关可以对请求进行路由和转换,使得客户端和服务端之间的交互更加灵活和高效。

此外,API网关还可以监控API的使用情况,收集数据并生成报告,以便开发人员和管理人员了解API的使用情况和性能状况,帮助他们更好地优化API设计和管理。

常见的API网关包括Amazon API Gateway、Apigee、Kong等。


三、网关的演变流程

反向代理网关 都是网站架构演进出来的产物。

演进过程如下图所示:

在这里插入图片描述

web时代,web1.0和web2.0时代的应用主要以web网站形式呈现,大多都采用前置反向代理,主要作用是反向路由和负载均衡,也承担安全认证和日志监控、限流熔断或缓存等功能,代表的技术产品有:nginx、haproxy,网站的升级频率并不是特别高,反向代理一般采用静态配置的方式,或有运维团队单独配置。

来到web3.0和微服务的时代,应用的形态发生了很大的变化,出现了大量提供API的服务,因为API的升级和更新的频率很高,对路由安全配置的能力要求很高,就出现了两个问题:

  • 这时候传统静态反向代理的方案就不够灵活,缺乏动态配置能力
  • 传统运维配置的方式效率低下,研发人员无法做到自助的配置

为了去解决如上的矛盾,API网关作为一个补充就运营而生。
API网关和反向代理的功能其实是大同小异的,不过主要面向API和微服务的,最主要的是面向研发人员更加自助优秀灵活的动态配置能力。

反向代理和API网关是大同小异的,反向代理能做的,那API网关基本也是可以做的,最多就需要扩展一下。

但对应架构上存在两套东西,看起来是比较变扭的,而且运维的成本也比较高。

另外在云原生时代,针对服务的要求有了更高的要求,对网关要求动态可配置,还要求动态可编程。

所以在业界又出现了反向代理和网关有融合的趋势,称之为统一代理,其又可以作为反向代理使用,也可以作为API网关使用。

网关主要给微服务/api用,偏向开发人员,反向代理主要面向传统静态web应用,偏向运维。未来趋势是DevOps+网关和反向代理再次融合。


四、反向代理和网关是什么关系

反向代理和网关都是位于客户端和后端服务之间的中间件,用于管理和转发请求。它们之间的关系可以理解为网关是反向代理的升级版

反向代理主要用于将客户端的请求转发到后端服务器上,并将响应返回给客户端。它可以隐藏后端服务器的身份和网络地址,实现负载均衡、高可用性、安全过滤等功能。

而网关则更加复杂,它不仅具有反向代理的功能,还能对请求进行转换、路由、过滤、监控和管理。API网关是一种特殊的网关,专门用于管理和公开API。

因此,可以认为API网关是一种更加高级的反向代理,它不仅提供了反向代理的基本功能,还具有更加丰富和复杂的功能,例如API管理、安全鉴别、流量控制、缓存、转换等。


五、总结

反向代理网关 都是网站架构演进出来的产物。

反向代理和API网关都是中间件技术,用于管理和转发请求。反向代理主要用于将客户端请求转发到后端服务器上,并将响应返回给客户端,可以实现负载均衡、高可用性、安全过滤等功能。而API网关则是一种更加高级的网关,它不仅提供反向代理的基本功能,还具有更加丰富和复杂的功能,例如API管理、安全鉴别、流量控制、缓存、转换等。API网关专门用于管理和公开API,可以提供统一的API终端点,便于客户端访问和后端服务的管理。



http://www.kler.cn/a/6330.html

相关文章:

  • 攻防世界 robots
  • LSTM-SVM时序预测 | Matlab基于LSTM-SVM基于长短期记忆神经网络-支持向量机时间序列预测
  • 模型的量化(Quantization)
  • 最新的强大的文生视频模型Pyramid Flow 论文阅读及复现
  • linux创建虚拟串口
  • 极狐GitLab 17.7正式发布,可从 GitLab 丝滑迁移至极狐GitLab【一】
  • 现在的年轻人真会玩,开发界面都这么时尚,不服老都不行了
  • 第16章_变量、流程控制与游标
  • 记一次weblogic反序列化到内网域控上线
  • 深度探索c++对象模型-31-RTTI与存储位置简介
  • 计算机基本知识扫盲(持续更)
  • 一个令人惊艳的ChatGPT项目,开源了!
  • SpringBoot-核心技术篇
  • STM32G431-基于HAL库(第十四届蓝桥杯嵌入式模拟题2)
  • 【面试】一千万的数据你是怎么查询的?
  • MongoDB - 聚合查询
  • 【Python】【进阶篇】四、Python爬虫的URL编码/解码
  • 【c++】:“无敌的适配器来咯“栈和队列模拟实现以及优先级队列的模拟实现。
  • package XXX is not in GOROOT (C:\Program Files\Go\src\XXX)
  • SQL——数据定义DDL
  • 【@ConditionOnBean】
  • [linux]基础IO
  • [课程][原创]yolov7目标检测封装成类调用
  • 手写vuex4源码(二)组件install逻辑
  • Android ART虚拟机 GC的各种类型
  • 分享一个国内可用的免费ChatGPT网站