【问题标题】:HTTP/HTTPS nodejs servers on Amazon elastic beanstalkAmazon elastic beanstalk 上的 HTTP/HTTPS nodejs 服务器
【发布时间】:2015-10-10 04:59:49
【问题描述】:

我有一个创建两个服务器的 nodejs 程序。

HTTPS 服务器运行在 3000 端口

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

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

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

我的应用程序根本没有运行。它一部署就变红。 查看日志,我看到它试图重定向到 https 域名,但没有成功。

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

知道该怎么做吗?非常感谢。

【问题讨论】:

  • 你好,我也遇到了同样的问题,请问你是怎么解决的?

标签: node.js https amazon-elastic-beanstalk


【解决方案1】:

基本上,您需要定制您的 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 中的帖子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 2020-12-22
    • 2015-10-22
    • 2013-06-12
    • 2016-12-25
    • 2015-05-27
    • 2017-10-14
    相关资源
    最近更新 更多