我有一个使用默认端口3000的Node.js Express网络应用程序,并通过弹性IP在Ubuntu EC2实例上做出正确的响应。我正在尝试设置内置于AWS的负载平衡,似乎无法通过良好的健康检查传递
设置2台ubuntu服务器,在端口3000上为应用程序提供服务。
将端口80的负载均衡器侦听器设置为路由到实例端口3000,并尝试将3000路由到3000.
为了以防万一,将amazon-elb / amazon-elb-sg安全组添加到我的实例安全组中。
将运行状况检查设置为端口80和3000到项目中的许多有效URL。
我在这里缺少什么?
更新:
原来这是我最容易忽视的事情。不知怎的,我的实际实例是在一个只打开80的安全组中,我只需要添加一个规则来打开3000.不能相信我错过了。
答案 0 :(得分:2)
如果您将负载均衡器设置为仅将端口80上的传入请求转发到后端实例上的端口3000,则在尝试80以外的端口时不应得到任何响应。如果您正在对端口发出请求3000(即http://yourdomain.com:3000/uri)您需要让负载均衡器还将端口3000上的传入请求转发到实例上的端口3000.
如果您在实例上仅使用端口3000,那么您需要确保您的运行状况检查指向端口3000.(即TCP ping 3000,或HTTP到端口3000,针对您的/ping
服务。)< / p>