为了处理微服务架构,它通常与反向代理(例如nginx或apache httpd)一起使用,并且用于跨 Realm 实现API gateway pattern is used。有时反向代理会完成API网关的工作。
很高兴看到这两种方法之间存在明显的差异。
看来API网关使用的潜在好处是调用了多个微服务并汇总了结果。 API网关的所有其他responsibilities都可以使用反向代理来实现,例如:

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

  • 因此,基于此有几个问题:
  • 同时使用API​​网关和反向代理是否有意义(例如request-> Api网关->反向代理(nginx)->具体的mictoservice)?在什么情况下?
  • 使用API​​网关可以实现的其他区别还有反向代理不能实现的其他区别,反之亦然?
  • 最佳答案

    如果您意识到它们不是互斥的,则更容易考虑它们。将API网关视为特定类型的反向代理实现。

    关于您的问题,经常将两者结合使用时,API网关被视为位于反向代理后面的应用程序层,以进行负载平衡和运行状况检查。一个例子就是类似WAF的三明治体系结构,其中Web应用程序防火墙/ API网关被反向代理层夹持,其中一个反向代理层用于WAF本身,另一个用于与之对话的单个微服务。

    关于差异,它们非常相似。这只是术语。当您进行基本的反向代理设置并开始使用更多功能(如身份验证,速率限制,动态配置更新和服务发现)时,人们更有可能调用该API网关。

    关于nginx - API网关与反向代理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35756663/

    10-11 10:30