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 如何采用自定义 python 命令?
如何卸载 Amazon Elastic Beanstalk 命令行界面?