我正在尝试在弹性负载均衡器下设置两个实例,但无法弄清楚我应该如何通过负载均衡器访问实例。
我已经使用安全组设置了实例,以允许从任何地方访问某些端口。我可以使用它们的“公共 DNS”(publicdns) 主机名和端口 PORT 直接访问实例:
http://[publicdns]:PORT/
负载均衡器包含两个实例,它们都是“服务中”,并且将端口 (PORT) 转发到实例上的同一端口。
但是,如果我要求
http://[dnsname]:PORT(其中 dnsname 是为 ELB 列出的 A 记录)
它没有连接到实例(连接超时)。
这不是使用负载均衡器的正确方法,还是我需要做任何事情来允许访问负载均衡器?唯一提到与负载均衡器相关的安全组是将实例的访问权限仅限于负载均衡器,但我不希望这样。我也希望能够单独访问它们。
我敢肯定有一些简单而愚蠢的事情我已经忘记了,没有意识到或做错了:P
干杯,斯文德。
添加了额外信息:
负载均衡器的端口配置如下所示(实际上是 3 个端口):
10060 (HTTP) 转发到 10060 (HTTP) 粘性:禁用(编辑)
10061 (HTTP) 转发到 10061 (HTTP) 粘性:禁用(编辑)
10062 (HTTP) 转发到 10062 (HTTP) 粘性:禁用(编辑)
它使用标准/默认的 elb 安全组 (amazon-elb-sg)。
这些实例有两个安全组。一个外部看起来像这样:
22 (SSH) 0.0.0.0/0
10060 - 10061 0.0.0.0/0
10062 0.0.0.0/0
和一个内部,允许内部组内的任何东西在所有端口上进行通信:
0 - 65535 sg-xxxxxxxx(安全组 ID)
不确定它有什么不同,但实例是 m1.small 类型的图像 ami-31814f58。
可能有相关性的东西:
我的运行状况检查曾经是 HTTP:PORT/,但负载均衡器一直说这些实例“停止服务”,即使我似乎在该端口上收到了 200 响应。
然后我将其更改为 TCP:PORT,然后更改为“正在服务”。
是否应该为 HTTP 返回一些非常具体的内容,或者只是需要一个 HTTP 200 响应?...并且它没有工作的事实是否暗示了为什么负载平衡本身也没有工作?