我已经写了一个Node.js应用程序,我希望让它在我们的一台生产机器上运行。这似乎是一个很常见的请求,但我找不到一个合适的解决方案。是否还没有用于部署生产Node.js应用程序的成熟解决方案?
该应用程序很简单(<100LOC),但需要非常有效,可靠,可以连续运行数年而无需重启。它将在一个大型站点上运行,每秒有几十个连接。(该应用程序不用作has服务器,它只有一个JSON API)
以下是我考虑过的方法,但我仍然不确定:
使用框架的(例如,Express)
因为应用程序需要高性能,而且非常简单,所以以框架的形式添加臃肿是我想避免的。
使用 nohup
启动服务器
这里的主要问题是异常处理,我们(显然)不希望整个服务器因为异常而崩溃。据我所知,将整个应用程序包装在try {} catch {}
循环中不会有什么帮助,因为在发生异常后,Javascript解释器会处于不可预测的状态。对吗?
使用类似Forever的
我已经在我们的一台FreeBSD机器上安装了Forever,它有很多buggy。它最终产生了无穷无尽的进程,这些进程永远不会被杀死。我不得不运行kill -9
来找回我的机器,我对在Forever上运行生产应用程序没有太大的信心。似乎Upstart (类似的工具,但更通用)不能在FreeBSD上运行。
托管解决方案(例如Heroku、Rackspace、亚马逊EC2等)
这可能是最简单的解决方案,但我们已经有了用于其余we服务器的重要硬件。出于财务方面的考虑,这没有任何意义。
当然,对此一定有一些既定的解决方案?我是不是遗漏了什么?
发布于 2011-12-05 22:39:01
发布于 2011-12-05 22:30:04
本教程将指导您设置一个服务器,该服务器可以为服务器端JavaScript应用程序托管node.js应用程序。现在,node.js托管选项归结为运行与web服务器对话的节点守护进程。大多数web服务器都可以代理连接到不同的端口,所以你可以使用Apache或nginx来做这件事。
发布于 2016-12-08 19:59:37
尝试使用pm2它是简单直观的命令行界面,可以通过NPM安装。只需使用PM2启动您的应用程序,您的应用程序就可以处理大量的流量
How to set up a node js application for production using pm2
https://stackoverflow.com/questions/8386455
复制相似问题