1

我必须在节点 js 监听端口 80 中运行三个单独的应用程序。现在我正在使用这种方法

app.get('/barcelona/*', function(request, response) {

});
app.get('/real_madrid/*', function(request, response) {

});
app.get('/manchester/*', function(request, response) {

});

当我在“barcelona”或“real_madrid”或“manchester”中更改某些内容时,我必须重新启动我的所有应用程序。如果有任何语法错误,整个应用程序将关闭。我想要php之类的东西。应用程序中的错误不会相互影响。我该怎么做?

4

2 回答 2

2

A common way to do this is to put a proxy in front, such as nginx. The proxy can route requests to specific Node.js-based applications transparently.

于 2013-02-04T04:09:50.167 回答
1

我将分两部分回答这个问题。

  1. 处理异常。在 Node.js 中,如果您的应用程序执行过程中发生异常,整个应用程序将被关闭。主要原因是 JavaScript 的单线程特性。处理应用程序中的异常总是比留给运行时更好。

  2. 更改/错误修复后重新部署。我使用Naught.js来管理我在生产中的部署。Naught.js 将监视您的节点进程,如果您的应用程序出现故障,它将重新启动该进程。代码更改后,您可以使用 Naught.js 来部署更改。Naught.js 只会在启动具有最新更改的新进程后关闭旧进程。这将确保您的应用程序的零停机时间。Forver也做了类似的事情。

如果您正在寻找运行应用程序的多个实例,您可以尝试一下

于 2013-02-04T04:36:03.443 回答