Amazon弹性beanstalk上的HTTP / HTTPS nodejs服务器

时间:2015-07-20 22:11:52

标签: node.js https elastic-beanstalk

我有一个nodejs程序,可以创建两个服务器。

在端口3000上运行的HTTPS服务器

在端口8080上运行的HTTP服务器(它只是使用https转发到我的域名)

我正在尝试在弹性beanstalk上部署它。

我上传了证书并在弹性beanstalk中打开了HTTPS端口(如本文档所述:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html

我的申请根本没有运行。它一旦部署就会​​变红。 查看日志,我看到它试图重定向到https域名,但这无处可去。

我没看到亚马逊如何知道哪个端口有哪个。怎么知道端口3000有https,端口8080有http?这在任何地方都没有提到。也许这就是问题所在?

知道该怎么办?非常感谢。

1 个答案:

答案 0 :(得分:0)

基本上,您需要完成您的Elastic Beanstalk环境:

  • 弹性负载均衡器
    • 侦听端口80并将其代理到EC2实例端口8080。
    • 侦听端口443并将其代理到EC2实例端口3000。
  • EC2 Web服务器/代理(您的Nginx / Apache):
    • 侦听端口8080并通过重定向到HTTPS进行响应。
    • 收听端口3000并提供请求。

我认为您的配置失败,因为您使用Elastic Beanstalk Web控制台配置ELB。 Web控制台只能将HTTP和HTTPS转发到EC2实例中的单个端口。因此,您的请求永远不会被端口3000处理。您无法使用Elastic Beanstalk Web控制台执行此操作,您需要使用其他方法(例如.ebextensions或CLI)来应用此请求。

请查看我的回答here以及here中的帖子。