【问题标题】:How do make my microservices only accessible by the api gateway如何使我的微服务只能由 api 网关访问
【发布时间】:2021-01-27 20:47:51
【问题描述】:

我想知道如何保护我的 Nodejs 微服务,以便只有 API 网关可以访问它。目前微服务暴露在我机器上的一个唯一端口上,可以直接访问而无需通过网关。这违背了网关作为系统中安全和授权信息交换的唯一入口点的目的。

微服务和网关目前是用 Nodejs 和 express 构建的。

计划最终将其部署在云(数字海洋)上。我会很感激任何回应。谢谢。

【问题讨论】:

    标签: node.js express microservices gateway


    【解决方案1】:

    Kubernetes 可以解决这个问题。

    Kubernetes 管理容器,其中每个容器都可以是一个微服务。 在将微服务连接到网关服务器时,您可以选择只允许外部连接到网关服务器。你的 kubernetes 集群中会有一个负载均衡器/nginx,它将请求重定向到你的网关服务器。

    Kubernetes 还有许多其他功能,例如:

    • 服务发现:您的每个微服务的 IP 都可能在重新启动/部署时发生变化,除非您的所有服务都有静态 IP。服务发现解决了这个问题。
    • 高可用性、水平扩展和零停机时间:您可以配置为每个服务有多个副本。因此,当其中一项服务出现故障时,仍有其他副本活着来处理剩余的请求。这也有助于 CICD。使用 github action 之类的东西,您可以制作一个流畅的 CICD 管道。当你部署一个新的 docker 镜像(更新一个微服务)时,kubernetes 会先启动一个新的容器,然后杀死旧的容器。因此,您的停机时间为零。

    如果您正在使用微服务,那么您绝对应该深入了解 Kubernetes。

    【讨论】:

    • 非常感谢。我认为这是一个基础设施问题。我找到了一种方法,但在处理不同的项目时我肯定会考虑这种可能性。
    猜你喜欢
    • 2017-12-22
    • 2021-04-02
    • 1970-01-01
    • 2020-07-23
    • 2019-04-06
    • 2020-07-24
    • 1970-01-01
    • 2023-02-13
    • 2017-07-26
    相关资源
    最近更新 更多