首页 > 解决方案 > 在生产环境中运行 NodeJS 服务器

问题描述

我有一个需要部署的 react + node 应用程序。我正在使用 nginx 为我的前端提供服务,但我不确定使用什么来保持我的 nodejs 服务器在生产中运行。

该项目托管在 Windows VM 上。由于许可证问题,我无法使用 pm2。我不知道在生产中使用 nodemon 运行服务器是否好。我从未在生产中部署过应用程序,因此我不知道合适的方法。

标签: node.jsreactjsnginxproduction-environment

解决方案


你也可以使用码头工人。您可以创建多个 docker 容器来运行您的节点服务器。现在在您的主机上的 nginx 级别,您可以进行负载平衡配置,这会将流量平均路由到不同的 docker 节点容器,这将提高您的可用性和可扩展性,在繁忙的流量中,您只需要增加 docker 节点容器的数量在需要的时候。我猜最初 2 个容器足以处理流量(不过取决于您的用例)。

注意:- 您也可以在 docker 容器中使用foreversupervisor按照@Rajesh Gupta 的建议来运行节点服务器。我们为此使用 PM2。

如果您有一个数据库,那么您可以为该数据库创建一个单独的 docker 容器并将其映射到您的主机中的一个卷。

你可以从这里了解 docker 。

您还可以从此处阅读有关 nginx 中的负载平衡的信息。

为了进一步提高可用性,您可以在 nginx 和 docker 容器之间添加一个缓存层。Varnish是迄今为止我用过的最好的缓存服务。

PS:- 我们使用类似但更先进的架构来运行我们的电子商务应用程序,该应用程序每天生成 5-10k 个订单。因此,这是一种经过测试的方法,停机时间为 0。


推荐阅读