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

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.lryc.cn/news/37062.html

相关文章:

  • IT行业就业趋势显示:二季度平均月薪超8千
  • 【毕业设计】基于Java的五子棋游戏的设计(源代码+论文)
  • C#:Krypton控件使用方法详解(第十四讲) ——kryptonSeparator
  • Java的jar包打包成exe应用
  • Latex学习笔记
  • 【c++复习】C++的基础知识(常用关键字、缺省参数、函数重载、引用)
  • Docker入门建议收藏 第二部分
  • 蓝桥杯三月刷题 第7天
  • 面试官问百万数据excel导出功能如何实现?
  • 理解HTTPS及配置
  • IP-guard浏览器上传下载智能加解密,让管理更省心省力
  • leetcode day22 位运算
  • java中如何判断map是否为空
  • C语言数据结构:链表的增删改查及动态创建
  • 「Python 基础」I/O 编程、正则表达式
  • java 把pdf图片文档和文章文档转成文字的方法
  • JavaScript 中的全部对象
  • 【教学典型案例】23.部分服务总是频繁出现掉线情况
  • 线程安全 List 效率测试
  • LeetCode 热题 C++ 581. 最短无序连续子数组 617. 合并二叉树
  • 鉴源论坛 · 观模丨模型检查综述
  • Easy Deep Learning——池化层
  • TryHackMe-VulnNet: Active(ez 域渗透)
  • TencentOS Server 安装 PostgreSQL
  • 多线程的风险 --- 线程安全
  • Linux信号详解
  • JAVA使用POI操作EXCEL
  • 只做笔记有必要买apple pencil吗?苹果笔的代替笔推荐
  • Hive---sqoop安装教程及sqoop操作
  • 【C++】register 关键字