4

我有一个 node.js 应用程序在 Beanstalk 上运行良好,但现在我正在尝试将其设置为使用 SSL 证书以允许 https 访问。但是,除了端口 80 上的默认侦听之外,我尝试使用的任何配置设置都会导致整个应用程序(在 http 和 https 上)变得无法访问。

如果我继续运行相同的应用程序(监听process.env.PORT)但更改负载均衡器设置以监听端口 443 和端口 80,那么两者都无法访问。

我也尝试过更改应用程序,以便它使用节点https服务器包而不是http但这没有区别。告诉负载均衡器只监听端口 443 也不起作用。

据我所知,将其设置为允许端口 80 和 443 会使负载均衡器都转发到同一个端口 8080(process.env.PORT在应用程序中给出) - 这是正确的吗?如果是这样,那么当它应该已经在侦听正确的端口时,我需要在应用程序端进行什么更改才能使其工作?

4

1 回答 1

6

我通过以下 AWS 论坛上的建议设法解决了这个问题:https ://forums.aws.amazon.com/thread.jspa?messageID=463043

我需要更改负载均衡器使用的安全组(自动创建并具有描述的安全组ELB created security group used when no security group is specified during ELB creation - modifications could impact traffic to future ELBs)。

负载均衡器应该已经允许来自源 0.0.0.0/0 的端口 80 上的 HTTP 流量,并且您必须在端口 443(也来自 0.0.0.0/0)上添加 HTTPS 流量,以允许 HTTPS 流量。这可以在 EC2 管理控制台的安全组部分完成。

然后在您的 Node.js 应用程序中侦听端口 8080,您的内容可以通过 HTTP 和 HTTPS 访问。

于 2013-06-25T14:22:56.793 回答