如何让我的微服务只能通过 api 网关访问
How do make my microservices only accessible by the api gateway
我想知道如何保护我的 Nodejs 微服务,以便只有 API 网关可以访问它。目前微服务暴露在我机器上的一个唯一端口上,可以直接访问而无需通过网关。这违背了网关作为系统中安全和授权信息交换的唯一入口点的目的。
微服务和网关目前使用 Nodejs 和 express 构建。
计划最终部署在云端(数字海洋)。我会很感激任何回应。谢谢
Kubernetes 可以解决这个问题。
Kubernetes 管理容器,其中每个容器都可以是一个微服务。
将微服务连接到网关服务器时,您可以选择只允许外部连接到您的网关服务器。您的 kubernetes 集群中会有一个负载均衡器/nginx,可将请求重定向到您的网关服务器。
Kubernetes 还有许多其他功能,例如:
- 服务发现:您的每个微服务的 IP 可能会在 restart/deployment 上发生变化,除非您的所有服务都拥有静态 IP。服务发现解决了这个问题。
- 高可用性、横向扩展和零停机时间:您可以为每个服务配置多个副本。因此,当其中一项服务出现故障时,仍有其他副本处于活动状态以处理剩余的请求。这也有助于 CICD。通过类似 github 的操作,您可以创建一个平滑的 CICD 管道。当你部署一个新的 docker 镜像(更新微服务)时,kubernetes 将首先启动一个新容器,然后杀死旧容器。所以您的停机时间为零。
如果您正在使用微服务,那么您绝对应该深入了解 kubernetes。
我想知道如何保护我的 Nodejs 微服务,以便只有 API 网关可以访问它。目前微服务暴露在我机器上的一个唯一端口上,可以直接访问而无需通过网关。这违背了网关作为系统中安全和授权信息交换的唯一入口点的目的。
微服务和网关目前使用 Nodejs 和 express 构建。
计划最终部署在云端(数字海洋)。我会很感激任何回应。谢谢
Kubernetes 可以解决这个问题。
Kubernetes 管理容器,其中每个容器都可以是一个微服务。 将微服务连接到网关服务器时,您可以选择只允许外部连接到您的网关服务器。您的 kubernetes 集群中会有一个负载均衡器/nginx,可将请求重定向到您的网关服务器。
Kubernetes 还有许多其他功能,例如:
- 服务发现:您的每个微服务的 IP 可能会在 restart/deployment 上发生变化,除非您的所有服务都拥有静态 IP。服务发现解决了这个问题。
- 高可用性、横向扩展和零停机时间:您可以为每个服务配置多个副本。因此,当其中一项服务出现故障时,仍有其他副本处于活动状态以处理剩余的请求。这也有助于 CICD。通过类似 github 的操作,您可以创建一个平滑的 CICD 管道。当你部署一个新的 docker 镜像(更新微服务)时,kubernetes 将首先启动一个新容器,然后杀死旧容器。所以您的停机时间为零。
如果您正在使用微服务,那么您绝对应该深入了解 kubernetes。