aws opsworks多个nodejs应用程序?

gor*_*i93 4 amazon-ec2 amazon-web-services aws-opsworks

我有一个OpsWorks Nodejs堆栈.我设置了多个nodejs应用程序.现在的问题是所有nodejs server.js脚本都在端口80上侦听以进行亚马逊生命检查,但该端口只能由一个端口使用.我不知道如何解决这个问题.我已阅读亚马逊文档但无法找到解决方案.我读到我可以尝试更改部署配方变量以将此生命检查设置为不同的端口,但它不起作用.有帮助吗?

Der*_*ike 5

我和这个问题争了一段时间,最终找到了一个非常简单的解决方案.


端口设置在deploy cookbook的属性中......

https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/deploy/attributes/deploy.rb

按行...

default[:deploy][application][:nodejs][:port] = deploy[:ssl_support] ? 443 : 80
Run Code Online (Sandbox Code Playgroud)

你可以使用堆栈的自定义json覆盖它,例如:

{
  "deploy" : {
    "app_name_1": {
      "nodejs": {
        "port": 80
      }
    },
    "app_name_2": {
      "nodejs": {
        "port": 3000
      }
    }
  },
  "mongodb" : {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

现在/etc/monit.d/node_web_app-.monitrc中的monitrc文件应该反映它们各自的端口,monit应该让它们保持活着!