将Expressjs应用部署到生产环境

7

我刚开始接触expressjs,我想要将一个expressjs应用部署到生产环境。根据我的搜索,我考虑在rackspace上进行以下设置:

1个负载均衡器 + 2个服务器 + 使用forever运行应用

我的问题是:

  1. 我该使用什么引擎来运行应用?nginx?

  2. 每个服务器上可以运行多少个应用?

谢谢。

2个回答

8
  1. 如果你正在提供静态文件或使用任何nginx的反向代理功能,你可以使用nginx。但是,如果没有这样做,则根本不需要nginx,因为你的服务器位于负载均衡器后面。
  2. 经验法则是每个核心一个node.js/express.js进程。请查看 cluster 来帮助你管理此过程。确保你的负载均衡器知道你正在运行的所有node.js进程(并且不仅仅是在每台服务器上的一个IP/port对之间进行负载平衡)。

更新:现在Node.js内置了cluster

另外,如果你在Ubuntu上部署,你可以使用upstart而不是forever。


您能解释一下集群是如何工作的吗?我从API/文档中没有得到任何信息。 - Julius F
1
我还没有使用过,但现在node.js核心已经内置了集群功能。请查看文档:http://nodejs.org/docs/latest/api/cluster.html - Peter Lyons

1

要运行nodejs,您需要在计算机上安装nodejs。nginx是用于反向代理和负载均衡的服务器。另外,您可以使用pm2而不是forever来运行应用程序,它将处理所有集群并在后台运行您的应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接