在Cloud VM上的后台运行Node.js服务器的最佳实践

时间:2015-11-30 15:11:01

标签: node.js amazon-web-services google-compute-engine

我目前正在Google Compute Engine上运行node.js服务器,但是当我退出时它总是会关闭。

是否有将服务器保留在后台的最佳做法?我不想尝试首先尝试我发现并使用它,因为我不知道可靠性的后果等。

我见过人们使用nohup,而且永远都是。但我不确定专业服务器是如何做到的,比如twitter / facebook服务器。

2 个答案:

答案 0 :(得分:3)

因此,在大多数服务器环境中这都是相同的,但细节会根据您使用的操作系统而有所不同。

您正在查看的常规组件将是您的Web服务器(例如apache,nginx),您的流程管理器(例如pm2或init.d)以及您的应用程序。

Web服务器是可选的,但在生产环境中推荐使用,因为它可以处理缓存和静态文件服务之类的事情,在大多数情况下比在节点进程中更高效。

进程管理器将在您注销时保持进程运行(并在服务器重新启动或进程崩溃时重新启动);通常他们通过将应用程序作为非登录服务帐户运行(这是理想的,因为您可以通过这种方式降低权限)。

这里有CentOS的分步示例:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-centos-7如果您想获得有关如何操作的命令行信息。

答案 1 :(得分:2)

节点流程管理器

您可以使用pm2(Node.js的流程管理器)在后台运行应用程序以进行生产部署。

正如该项目的README所说:

$ npm install pm2 -g
$ pm2 start app.js
     

你的应用程序现在被置于后台,被监控并永远保持活着。

您可以在project's home page上看到更多信息,功能,屏幕截图等。

托管虚拟机

作为替代方案,由于您使用的是Google云端平台,请查看可以运行和管理您的Node.js应用的Google Managed VMs(除了其他语言) - 请参阅{{3更多信息。

注意:截至撰写本文时(2015年12月3日),Getting started guide for Node.js,表示:

  

这是托管虚拟机的Beta版本。任何SLA或弃用策略都不涵盖此功能,并且可能会受到向后不兼容的更改