代码之家  ›  专栏  ›  技术社区  ›  FERN

节点。js API网关和nginx作为反向代理

  •  2
  • FERN  · 技术社区  · 6 年前

    我最近开始使用微服务体系结构创建一个应用程序,因为该应用程序的发展划分了反向代理和API网关的概念,这对我来说逐渐消失了:
    我想使用nginx来处理负载平衡&反向代理,但我还想使用API网关,这样客户机就不知道体系结构中的每个微服务(以及其他)。

    所以现在我只能吃鸡肉了&关于鸡蛋问题,我一直在思考什么是第一位的:

    1. 请求(>);API网关>nginx公司。
    2. 请求(>);nginx>API网关。

    我倾向于认为它是第一位的,但在这种情况下,nginx不会成为应用程序的入口点。。。(这是个问题吗?)

    2 回复  |  直到 6 年前
        1
  •  0
  •   AbhinavD    6 年前

    API网关具有许多功能,如节流、缓存、cors等。许多使用API网关调用不同的微服务,并在API网关级别组合结果(但我不喜欢这样)。您还可以使用一些API网关工具进行API版本管理。

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

    因此,我认为选项1是正确的。

        2
  •  0
  •   Mohamed Sohail    4 年前

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

    1. API网关通常不是为处理潜在的DOS攻击而设计的,使用nginx通知网关可以消除这种担忧。

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

    3. 像nginx这样的反向代理是在考虑性能的基础上构建的,可以以更低的成本处理更多的请求。有节点的。高性能服务器面前的js是一个瓶颈!

    API网关在技术上是一种“专用”反向代理。因此,最终您将认识到任务可以由任何一方执行。