Node.js API网关& nginx作为反向代理

时间:2018-05-14 15:27:57

标签: node.js api nginx gateway

我最近开始使用微服务架构创建一个应用程序,因为应用程序演变了划分反向代理和API网关概念的线路为我消失:
我想使用nginx来处理负载均衡&反向代理,但我也想使用API​​网关,因此客户端不了解架构中的每个微服务(等等)。

所以现在我被鸡肉和鸡肉困住了鸡蛋问题,我一直在思考什么是第一个:

  1. 请求> API网关> nginx的。
  2. 请求> nginx> API网关。
  3. 我倾向于认为它的数字1,但在这种情况下,nginx不会是应用程序的入口点......(这是一个问题吗?)

2 个答案:

答案 0 :(得分:0)

API网关带有许多功能,如限制,缓存,编码等。许多使用API​​网关调用不同的微服务并将结果组合在API网关级别(我不喜欢它)。您还可以使用某些API网关工具进行API版本管理。

只有在您决定调用哪个API或阻止该API或要调用哪个版本的API之后,才能进行负载平衡。

所以选项1看起来对我来说。

答案 1 :(得分:0)

理想情况下,您应该选择选项2。这就是原因:

  1. API网关通常不旨在处理潜在的DOS攻击,网关的nginx infornt消除了这种担忧。

  2. 大多数API网关都是基于路由的,如果您选择子域,则选项1仅适用于某些网关,而选项2将适用于所有网关。

  3. 构建像nginx这样的反向代理时要考虑到性能,并且可以以较低的成本处理更多的请求。在性能更高的服务器之前安装Node.js成为瓶颈!

从技术上讲,API网关是“专用”反向代理。因此,最终您将意识到任一个任务都可以执行。