AWS Elastick Beanstalk + Node JS + HTTPS = 连接被拒绝

AWS Elastick Beanstalk + Node JS + HTTPS = 连接被拒绝

我在 AWS 上部署了一个 node js 应用程序,使用 Elastic Beanstalk 和单个实例。它与 HTTP 配合得很好,但我在设置 HTTPS 访问时遇到了麻烦。

我创建了证书并按照 AWS EB 文档中的说明进行操作:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-nodejs.html

以下是我部署新代码后出现的问题的描述:

我仍然可以使用 HTTP 连接到浏览器上的 URL,但是,当尝试使用 HTTPS 连接时,我收到消息ERR_CONNECTION_REFUSED

我使用 netcat 检查端口 443 是否可以访问,但不能:

nc -z environment.elasticbeanstalk.com 80

返回:

Connection to environment.elasticbeanstalk.com port 80 [tcp/http] succeeded!

nc -z environment.elasticbeanstalk.com 443

不返回任何内容

我还检查了与 EC2 实例关联的安全组的入站规则,它确实打开了端口 443: 在此处输入图片描述

最后,我检查了 elastic beanstalk 日志,找不到任何对 HTTPS 请求的引用。如果我查找尝试使用 HTTPS 访问应用程序时附近的时间戳,则没有找到。看起来 nginx 服务器从未收到过该请求。

当我使用 Elatstic Beanstalk 与 php/apache 服务器时,设置类似的 HTTPS 访问没有遇到任何问题,但在这种情况下,我对 node/nginx 还不熟悉,所以我可能会错过一些基本的东西。

对于我应该检查什么或者做什么,您有什么建议吗?

提前非常感谢,

埃雷兹

答案1

好的,我发现了这个问题:在 elastic beanstalk 配置中,没有设置代理。

我更新了 EB 配置以包含 nginx 代理并且它可以正常工作。

Configuration > Software Configuration > Container Options > Proxy server: nginx

相关内容