我有一个在 AWS 上运行的 Node 应用程序。投入生产时,它很有可能会收到大量请求。我计划使用 AWS ECS 托管它,并且在应用程序前面会有一个 AWS 应用程序负载均衡器。当我查看“如何在生产中部署 Node 应用程序”时,我看到每个人都在建议在 Node 应用程序前面使用 Nginx。
我的疑问是,如果我们在架构中有 ALB,我们是否还需要添加 Nginx?如果我们需要为 100 万用户托管应用程序,使用 Nginx 有什么好处吗?
我有一个在 AWS 上运行的 Node 应用程序。投入生产时,它很有可能会收到大量请求。我计划使用 AWS ECS 托管它,并且在应用程序前面会有一个 AWS 应用程序负载均衡器。当我查看“如何在生产中部署 Node 应用程序”时,我看到每个人都在建议在 Node 应用程序前面使用 Nginx。
我的疑问是,如果我们在架构中有 ALB,我们是否还需要添加 Nginx?如果我们需要为 100 万用户托管应用程序,使用 Nginx 有什么好处吗?
这取决于您如何使用 NGINX 进行负载平衡。应用程序负载均衡器确实带来了许多可以使 NGINX 在您的架构中变得冗余的功能,但它并不完全像 NGINX 那样先进。例如 ALB 只使用轮询负载均衡,而您可以配置 nginx 为轮询、最少连接等。ALB 没有任何缓存能力,而 nginx 提供静态内容缓存。ALB 仅使用基于路径的路由,而 nginx 可以根据请求标头、cookie 或参数以及请求 URL 进行路由。
进一步阅读和来源:https ://www.nginx.com/blog/aws-alb-vs-nginx-plus/
注意:使用 nginx 的另一个重要事实是与云无关。因此,如果您打算切换云提供商,您可以随身携带 nginx 设置。
这取决于您的架构的其余部分。如果 ALB 可以为您处理所有事情,那么您可能不需要 nginx。此外,如果您是第一次使用,nginx 有一个学习曲线。