[英]Has anyone been successful with Antlr v4 generating javascript for Hive
[英]Has anyone been successful deploying a node (express) app with Amazon OpsWorks?
正如标题所示,我一直在使用Amazons新的OpsWorks管理系统来部署应用程序,但是我无法弄清楚如何让节点服务器开始在实例上运行。 从端口应用程序层也可以访问我假设我需要在端口80上侦听,但我觉得问题是没有正确的文件被启动。
与Heroku上的Procfile类似,是否需要包含一个特殊的启动脚本类型文件,以便OpsWorks正确启动它?
请注意,我还没有使用Chef的经验,因此我希望能够使用默认选项,即不编写自定义Chef配方来完成它。
我花在这上面的时间是令人尴尬的,但无论如何我都会分享,希望能挽救其他人的生命时间,否则亚马逊会偷走他们的生命。
process.env
选择端口号的方法,请将您的侦听端口更改为80(如果适用,则更改为443)。 main
文件是什么。 将其重命名为server.js
并将其放在应用程序的根目录中。 这是monit尝试运行的文件。 希望这会有所帮助。 如果没有,或者所有这一切都是显而易见的,我为我的愚蠢和责备缺乏睡眠道歉。 :)
ZachRabbit的答案很棒。 我想补充一点,OpsWorks现在支持为部署的应用程序进程设置环境变量(即process.env.PORT)。
添加应用程序(或编辑)时,如果您在server.js中使用以下内容,则可以继续使用PORT键和值80设置环境变量:
!/usr/bin/env node
var debug = require('debug')('my-app');
var app = require('app');
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});
有关环境变量设置的更多信息,请访问:
http://docs.aws.amazon.com/opsworks/latest/userguide/apps-environment-vars.html
确保文件名是server.js并将环境变量PORT设置为80对我来说就像一个冠军。
只需复制AWS OpsWorks页面即可配置node.js应用程序:
“默认情况下,我们希望您的Node.js应用程序在端口80上侦听。此外,我们传递给节点的文件必须命名为”server.js“,并且应该位于应用程序的根目录中。”
问候。
我也在玩这个游戏,希望我的成功之路能够帮助别人。 Node.js通常需要提升权限才能在端口80上运行,所以我发现虽然命名示例应用程序app.js很好,但您需要修改默认OpsWorks Node.js部署Chef recipe的第2行以使用sudo:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.