node.js - 在单个服务器上运行和管理 nodejs 应用程序

标签 node.js

有没有在单个服务器上运行和管理多个 nodejs 应用的好方法?

我一直在看 haibunodester ,但对于我正在尝试做的事情来说,它们似乎有点复杂。

我也在看forever我认为这可能适用于配置文件和 web gui,但我不确定我将如何处理通过 ENV 或参数传递端口信息。

最佳答案

我使用 Supervisord & Monit ,更多细节和配置示例:Process Management at Bringr .

此外,您可以直接从 supervisord 配置文件中指定环境变量(参见 sub-process environment)。但我个人更喜欢将这些变量直接添加到每台机器上的 ~/.bashrc 中。

如果端口号不会因每个应用程序而改变(但会在生产和开发环境之间改变)。我建议在 config.json 中指定它们(或直接在 package.json 中)。并且 config.json 将根据环境为每个应用程序包含不同的端口号:

{
 myapp:{
  production:{port:8080},
  development:{port:3000}
 }
}

myapp.js里面:

 var config = require('./config');
 app.listen(config.myapp[process.env.NODE_ENV].port)

在 ~/.bashrc 中声明了 process.env.NODE_ENV

关于node.js - 在单个服务器上运行和管理 nodejs 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9561475/

相关文章:

javascript - 雅格斯 : access processed argv in fail function

javascript - 如何在 header 中传递身份验证 token 并帮助获取?

node.js - 如何从在 Node 中运行的 webpack 编译的脚本访问运行时环境变量?

node.js - 在angularjs中使用 Node 模块?

Javascript typeof 抛出引用错误

node.js - NodeJS 将文件写入 AWS S3 - Promise.All with async/await 不等待

node.js - NextJS Docker 容器与 .env.production

javascript - 多个 session 多次登录,无需任何商店

javascript - nodejs pbkdf2sync 不是缓冲区错误

mysql - 从 Node.js 中的多个表获取数据的最佳方法