,我一直在使用Node.js
和Socket.io
实时应用程序,我想利用它从本地测试阶段与我们的一些用户测试它。麻烦的是,如果我关闭ssh会话到我的服务器,它也会停止我开始使用的服务器node app.js
Node.js:优雅重启和服务器正常运行时间,howto?
我曾考虑过使用nohup,
,但我偶尔会遇到分段错误或其他随机错误,导致服务器关闭。我需要1)知道什么时候(以及希望为什么)我的服务器崩溃了,所以我都可以改进它以减少崩溃并确保重新启动它。另外,我不能24/7全天醒来重新启动服务器,所以有一些daemon
会很可爱。
我发现通过NPM可forever
,但它不是与节点的版本比0.8.x
更近,我跑0.9.1
兼容,它似乎并不像它就会被维护得很好。
我也偶然发现了distribution
和up
,但使用它们构建体面的应用程序的文档和示例似乎很缺乏。
然后有这个答案使用cluster
和os
模块。 https://stackoverflow.com/a/10997753/1883464
但节点列出集群实验http://nodejs.org/api/cluster.html
随着真实的生产环境,我开始得不到答案,范例,并讨论保持节点服务器正常运行(和更新他们的代码!)感觉我是第一个想要将他们的应用程序部署的人;)不知何故,我确信对于我没有找到的这个问题有一些常见的答案。
看看我的答案http://stackoverflow.com/questions/14287429/what-is-the-current-best-practice-for-a-production-deployment-of-node-to-aws/ 14288820#14288820特别是关于'集群'的可靠性的评论。 – 2013-02-08 16:14:26
另外,请阅读:http://gun.io/blog/tutorial-deploy-node-js-server-with-example/它使用monit monitore并重新启动node.js应用程序,如果它崩溃。 – Kaeros 2013-02-08 16:16:09
谢谢!@AaronDufour你的答案给了我更多的思考使用群集方法。 – runspired 2013-02-08 16:23:49