在单台服务器上运行和管理nodejs应用程序
是否有一种在单台服务器上运行和管理多个nodejs应用程序的好方法?在单台服务器上运行和管理nodejs应用程序
我一直在寻找haibu和nodester,但他们似乎有点复杂,我想要做的。
我也在看forever,我认为这可能与配置文件和网络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)
随着process.env.NODE_ENV
在〜/ .bashrc声明。
感谢您撰写这篇博文,它非常详细。所以你会管理supervisord配置中的端口:[program:myapp] command = node myapp.js 3000,[program:myapp2] command = node myapp.js 3001,etc? – 2012-03-06 14:31:06
编辑的答案,希望它回答你的问题。我个人更喜欢保持supervisord配置文件尽可能小,并保持变化的位/ env。 * .json配置文件中的变量。 – FGRibreau 2012-03-06 21:21:43
我们一直在努力改善Nodejitsu forever
和haibu
。似乎您在此寻找的方法是针对复杂选项的.forever
配置文件。这个功能已经在我们的积压,而现在
https://github.com/nodejitsu/forever/issues/124
检查回来。在下一轮性能改进之后,我认为它是非常重要的。
很高兴知道“永远”仍在支持! 'npm'软件包有一段时间没有更新,除非我错过了它。谢谢! – btleffler 2012-03-09 13:42:38
感谢您的输入。那么最好创建一个管理脚本,在每个应用程序中生成.forever配置文件? – 2012-03-09 17:23:27
我写了一个应用程序nodegod,我用于少数部署可能10应用程序每个。
nodegod读取JSON的应用程序列表。它有一个内部状态机来处理应用程序的生命周期以安全的方式,包括重新启动每个应用程序和网页功能停止/启动/调试。
该Web界面使用网络套接字,以便您可以通过ssh管理远程服务器。
当您部署在rsync上时,应用程序会自动重启。
因为nodegod监视其他应用程序的标准输出,您可以捕获应用程序的最后一次呼吸,如segfault和malloc错误。
我使用的HTTP代理叉子在快递的情况下的转换的前面,因此,任何数量的应用程序可以共享每个DNS单个服务器端口,用于HTTP和网络套接字。
我写了一个haraldops模块从源代码树外部读取应用程序配置。有了这个,你可以随时随地监控和收到电子邮件。
应用程序配置我保存在文件系统的git仓库中。
这不是火箭科学,它们都很好地融合在一起。只有节点和json:SIMPLE完成得更多。
听起来不错我会试试看 – 2012-08-29 15:06:46
这几天我已经采取使用dokku这是一个OSS的heroku克隆。部署与确保package.json包含启动脚本一样简单。例如:
"scripts": {
"start": "node index.js"
}
我并不完全相信你的项目的范围是,但它会利用每个应用站点配置文件的选项?您可以为“siteConfig.js”文件中的每个应用程序指定端口并将其导入到服务器文件中,这是组织事物的一种方式(请参阅https://github.com/mape/node-express-boilerplate)。这可能会处理端口部分,但不一定会为您提供所有应用程序的管理解决方案。 – 2012-03-05 04:50:29
让我解释一下我的工作流程。在我们的服务器上运行Apache,我将为我们开发的每个节点应用程序设置一个反向代理。现在这些是低流量的应用程序,所以我想在同一台服务器上运行它们。 – 2012-03-05 17:51:32