如何重新启动/更新节点express vhost站点

我在几个网站上工作,都有2个版本,住一个,开发一个。 http://timeprize.com和http://test.timeprize.com它们都运行在相同的端口和服务器上,使用express vhost

我的虚拟主机应用程序看起来很简单,基本上是这样的:

var evh = require('express-vhost'), express = require('express'); /*... some more variable declarations ...*/ if ( site_enabled('test.timeprize.com') ) { /**/ evh.register('test.timeprize.com', function() { var app = express(); app = require("../test_app/app.js").run_app(http); return app; }() ); }; if ( site_enabled('timeprize.com') ) { evh.register('timeprize.com', function() { var app = express(); app = require("../live_app/app.js").run_app(http); return app; }() ); }; /*... more sites below ...*/ 

我运行上面的代码使用“永远”的过程。

而现在的问题。 由于testing站点和活动站点都使用相同的进程在同一个服务器/端口上运行,因此如何在不中断活动站点的情况下更新/重新启动testing站点?

       

网上收集的解决方案 "如何重新启动/更新节点express vhost站点"

解决:

由于testing站点和活动站点都使用相同的进程在相同的服务器/端口上运行

这不应该发生。 当第二个程序尝试侦听已经占用的端口时,服务器应该会报错。

回答真正的问题:

如何更新/重新启动testing网站,而不中断活网站?

答案是不要永远使用。 是的,这很简单,但是对于多个应用程序同步运行的服务器而言, 必须使用的程序是PM2

  1. 全局安装:

[sudo] npm i -g pm2

  1. 开始你的应用程序,sudo,如果它侦听一个低于1024的端口:

[sudo] pm2 start app.js

  1. 重新启动您的应用程序:

[sudo] pm2 restart [all|name]

要么

[sudo] pm2 gracefulReload [all|name]

检查文档