如何在不终止现有连接的情况下更新nodejs app的部署

时间:2014-10-16 09:16:22

标签: node.js nginx pm2

nginx 用作运行nodejs app的服务器中的反向代理。 pm2 节点模块用于启动应用。当必须部署新版本的nodejs应用程序时,我想启动最新节点应用程序的新实例,并且所有新的传入请求都应该由这个新的nodejs应用程序实例提供。

旧的nodejs应用程序实例应该在所有现有请求(即在启动新nodejs应用程序之前连接)断开连接时退出。

如何进行此类设置。

1 个答案:

答案 0 :(得分:1)

您需要将node.js服务器作为具有pm2 pm2 start app.js -i max的群集运行。签出新代码后,只需运行pm2 reload all,它就会以0秒的停机时间重新加载您的应用。

它如何运作?

它会在您的新代码运行时启动新工作人员,并告诉您的旧工作人员停止收听新连接,并在他们完成当前请求(如果有)时关闭自己。