Amazon elastic beanstalk 上的 HTTP/HTTPS nodejs 服务器

Posted

技术标签:

【中文标题】Amazon elastic beanstalk 上的 HTTP/HTTPS nodejs 服务器【英文标题】:HTTP/HTTPS nodejs servers on Amazon elastic beanstalk 【发布时间】: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?从来没有在任何地方提到过。也许这就是问题所在?

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

【问题讨论】:

你好,我也遇到了同样的问题,请问你是怎么解决的? 【参考方案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 中的帖子。

【讨论】:

以上是关于Amazon elastic beanstalk 上的 HTTP/HTTPS nodejs 服务器的主要内容,如果未能解决你的问题,请参考以下文章

在 Amazon Elastic Beanstalk 上安装 Anaconda

Amazon Elastic Beanstalk 腻子

Amazon Elastic Beanstalk 如何采用自定义 python 命令?

如何卸载 Amazon Elastic Beanstalk 命令行界面?

Elastic Beanstalk 是不是支持 Amazon 的 Aurora DB?

使用 RabbitMQ 的 Amazon Elastic Beanstalk 上的芹菜超时异常