9

我有一个 Node.js Express Web 应用程序,它使用默认端口 3000,并通过弹性 ip 在 Ubuntu EC2 实例上响应良好。我正在尝试设置 AWS 内置的负载平衡,但似乎无法通过良好的运行状况检查

设置 2 个 ubuntu 服务器,在端口 3000 上为应用程序提供服务。

将端口 80 的负载均衡器侦听器设置为路由到实例端口 3000,并尝试将 3000 路由到 3000。

以防万一,将 amazon-elb/amazon-elb-sg 安全组添加到我的实例安全组中。

将健康检查设置为端口 80,并将 3000 设置为项目中的许多有效 url。

我在这里缺少什么吗?

更新:

原来这是我忽略的最简单的事情。不知何故,我的实际实例位于仅打开 80 个的安全组中,我只需要添加一个规则即可打开 3000 个。不敢相信我错过了。

4

1 回答 1

4

如果您将负载均衡器设置为仅将端口 80 上的传入请求转发到后端实例上的端口 3000,那么在尝试 80 以外的端口时您不应该得到任何响应。如果您针对端口 3000 发出请求(即http://yourdomain.com:3000/uri)您需要让负载均衡器还将端口 3000 上的传入请求转发到实例上的端口 3000。

如果您在实例上仅使用端口 3000,那么您需要确保您的健康检查指向端口 3000。(即 TCP ping 3000,或针对您的/ping服务的 HTTP 到端口 3000)。

于 2012-10-01T15:38:35.667 回答