如何重新启动/更新节点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站点?
解决:
由于testing站点和活动站点都使用相同的进程在相同的服务器/端口上运行
这不应该发生。 当第二个程序尝试侦听已经占用的端口时,服务器应该会报错。
回答真正的问题:
如何更新/重新启动testing网站,而不中断活网站?
答案是不要永远使用。 是的,这很简单,但是对于多个应用程序同步运行的服务器而言, 必须使用的程序是PM2
- 全局安装:
[sudo] npm i -g pm2
- 开始你的应用程序,sudo,如果它侦听一个低于1024的端口:
[sudo] pm2 start app.js
- 重新启动您的应用程序:
[sudo] pm2 restart [all|name]
要么
[sudo] pm2 gracefulReload [all|name]
检查文档