我在两个网站上工作,都有两个版本,一个是活的一个是开发的。http://timeprize.com和http://test.timeprize.com都使用express vhost在相同的端口和服务器上运行。
我的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 ...*/我正在使用“永远”进程运行上面的代码。
现在问题来了。由于测试站点和实时站点都使用相同的进程在相同的服务器/端口上运行,如何在不中断实时站点的情况下更新/重新启动测试站点?
发布于 2016-02-28 23:39:20
要解决以下问题:
,因为测试站点和实时站点都使用相同的进程在相同的服务器/端口上运行
这不应该发生。当第二个程序尝试侦听已占用的端口时,您的服务器应抛出错误。
要回答真正的问题:
如何在不中断活动站点的情况下更新/重新启动测试站点?
答案是永远不要使用。是的,这很简单,但对于同步运行多个应用程序的服务器,必须使用程序 is PM2
[sudo] npm i -g pm2
[sudo] pm2 start app.js
重启应用程序
[sudo] pm2 restart [all|name]
或
[sudo] pm2 gracefulReload [all|name]
Check out documentation
https://stackoverflow.com/questions/35684416
复制相似问题