API网关与反向代理

use*_*144 85 reverse-proxy nginx microservices aws-api-gateway tyk

为了处理微服务架构,它通常与反向代理(例如nginx或apache httpd)一起使用,并且对于交叉关注问题,使用实现 API网关模式.有时反向代理执行API网关的工作.
很高兴看到这两种方法之间存在明显的差异.看起来API网关使用的潜在好处是调用多个微服务并聚合结果.API网关的所有其他职责可以使用反向代理实现.例如:

  • 身份验证(可以使用nginx LUA脚本完成);
  • 运输安全.它本身就是反向代理任务;
  • 负载均衡
  • ....

基于此,有几个问题:

  1. 是否有意义地同时使用API​​网关和反向代理(例如请求 - > Api网关 - >反向代理(nginx) - >具体的mictoservice)?在什么情况下?
  2. 使用API​​网关可以实现的其他差异是什么,反向代理无法实现,反之亦然?

Jus*_*ott 63

如果你意识到它们并不相互排斥,那么更容易思考它们.将API网关视为特定类型的反向代理实现.

关于您的问题,通常会将API网关视为位于反向代理后面的应用程序层以进行负载平衡和运行状况检查,这两种情况并不常见.一个例子就像是WAF三明治体系结构,因为你的Web应用程序防火墙/ API网关被反向代理层夹在中间,一个用于WAF本身,另一个用于它所谈论的各个微服务.

关于差异,它们非常相似.这只是命名法.当您采用基本的反向代理设置并开始使用更多部分(例如身份验证,速率限制,动态配置更新和服务发现)时,人们更有可能将其称为API网关.

  • 那么,如果我理解正确的话,API网关是建立在反向代理之上并支持更多功能的,那么我们是否可以不只使用API​​网关并删除代理呢? (2认同)

And*_*nko 24

我相信,API Gateway是一个反向代理,可以通过API动态配置,也可以通过UI动态配置,而传统的反向代理(如Nginx,HAProxy或Apache)是通过配置文件配置的,必须在配置更改时重新启动.因此,当路由规则或其他配置经常更改时,应使用API​​网关.对你的问题:

  1. 只要此序列中的每个组件都能达到其目的,它就是有意义的.
  2. 差异不在功能列表中,而是在应用配置更改的方式中.

此外,API网关通常以SAAS的形式提供,例如ApigeeTyk.

另外,这是我的如何使用Node.js创建简单API网关的教程https://memz.co/api-gateway-microservices-docker-node-js/

希望能帮助到你.

  • 您是否有机会知道 memz.co 链接中的信息的替代位置?它死了。 (4认同)
  • 指向“API Gateway with Node.js”的链接已失效。 (3认同)

Sri*_*hna 6

API 网关充当反向代理,接受所有应用程序编程接口 (API) 调用,聚合实现这些调用所需的各种服务,并返回适当的结果。

\n

API网关具有比 API 代理更强大的功能集 xe2x80x94,尤其是在安全性和监控方面。我想说 API 网关模式也称为前端后端 (BFF),广泛应用于微服务开发中。查看这篇文章,了解微服务世界中API 网关模式的优点和功能

\n

另一方面,API 代理基本上是一个轻量级 API 网关。它包括一些基本的安全和监控功能。因此,如果您已经有 API 并且您的需求很简单,那么 API 代理就可以很好地工作。

\n

下图将为您提供 API 网关和反向代理之间的区别的清晰图片。

\n

在此输入图像描述

\n