部署一个生产环境的Node.js服务器 [已关闭]
- 论坛
- 部署一个生产环境的Node.js服务器 [已关闭]
31 浏览
部署一个生产环境的Node.js服务器 [已关闭]
我写了一个Node.js应用程序,希望将其运行在我们的一个生产机器上。这似乎是一个非常常见的需求,但我找不到一个合适的解决方案。难道没有针对部署生产Node.js应用程序的成熟解决方案吗?
这个应用程序很简单(<100行代码),但需要非常高效、可靠,并且可以连续运行数年而不需要重启。它将在一个大型网站上运行,每秒有数十个连接。(该应用程序并不用作Web服务器,它只有一个JSON API)
以下是我考虑过的方法,但我仍然不确定:
使用框架(例如Express)
由于应用程序需要高性能且非常简单,我想避免添加框架形式的臃肿代码。
使用nohup
启动服务器
这里的主要问题是异常处理,我们(显然)不希望整个服务器因为一个异常而崩溃。据我了解,将整个应用程序包装在try {} catch {}
循环中是没有帮助的,因为在异常发生后,JavaScript解释器处于不可预测的状态。这样说对吗?
使用类似Forever的工具
我在我们的一个FreeBSD机器上安装了Forever,但它非常不稳定。它最终生成了无法从Forever中杀死的无数进程。我不得不运行kill -9
来恢复我的机器,对在Forever上运行生产应用程序感到不太自信。另外,似乎Upstart(类似的工具,但更通用)在FreeBSD上无法运行。
托管解决方案(例如Heroku、Rackspace、Amazon EC2等)
这可能是最简单的解决方案,但我们已经为其余的Web服务器准备了严格的硬件。从财务考虑,这并不合理。
肯定有一些已经成熟的解决方案吧?我是不是漏掉了什么?