我试图在弹性负载均衡器下设置两个实例,但无法弄清楚我应该如何通过负载均衡器访问实例。通过ELB访问AWS EC2实例
我已经设置了一个安全组实例来允许从任何地方访问某些端口。
的http:// [publicdns]:PORT/
负载均衡包含了两个实例,他们是我可以直接使用他们的 “公共DNS”(publicdns)主机名和端口端口访问实例都是“In Service”并且它将端口(PORT)转发到实例上的同一个端口上。
然而,如果我请求
HTTP:// [DNSNAME]:PORT(其中DNSNAME是用于ELB列出的A记录)
它不连接到该实例(连接超时)。
这不是使用负载均衡器的正确方式,还是我需要做任何事情才能访问负载均衡器?与负载平衡器相关的唯一提到的安全组是限制只能访问负载平衡器的实例,但我不想那样做。我希望能够单独访问它们。
我敢肯定有一些简单和愚蠢的我忘了,没有意识到或冤屈:P
干杯, 斯文。
额外的信息说:
端口配置为负载平衡器看起来是这样的(实际上是3个):
10060(HTTP)转发到10060(HTTP) 粘性:禁用(编辑)
10061(HTTP)转发到10061(HTTP) 粘性:禁用(编辑)
1 0062(HTTP)转发到10062(HTTP) 粘滞性:已禁用(编辑)
它使用标准/默认elb安全组(amazon-elb-sg)。
实例有两个安全组。一个外部看起来像这样:
22(SSH) 0.0.0.0/0
10060 - 10061 0.0.0.0/0
0.0.0。0/0
和一个内部,内部组内允许任何对所有端口进行通信:
0 - 65535 SG-XXXXXXXX(安全组ID)
不知道这有什么差别,但实例是m1.small类型的图像ami-31814f58。
东西可能有相关性:以前是HTTP
我的健康检查:PORT /但负载平衡器口口声声说情况是“不在服务区”,即使我似乎得到200对该端口上的请求作出响应。
然后,我将其更改为TCP:PORT,然后更改为“正在服务”。
是否有一些非常具体的应该返回HTTP的,或者它只是一个HTTP 200响应是必需的? ...并且确实没有提示为什么负载均衡本身无法正常工作?
我想这是好,使用Web控制台: 1)创建一个安全组,允许所有来自所有来源的访问。 2)使用新的安全组创建新的t1.micro实例。 3)将SSH连接到组80上的“Hello”。 4)检查我是否可以直接获取“Hello”HTTP 200响应(是) 5)创建负载平衡器并分配此实例。 6)将健康检查设置为TCP:80(HTTP:80 /不起作用)。 7)尝试访问负载平衡器。不工作。 8)感觉很伤心: – 2012-02-24 17:45:50
你是如何访问loadbalancer的?当我向loadbalancer发送请求时,我正在请求一个index.html文件,它可能loadbalancer不喜欢发送一个空文件吗? – bwight 2012-02-24 18:31:11
I我一直在试验一下,看起来问题出在我的负载平衡器健康检查上,只是得到一个200响应代码似乎不够,我之前通过使用netcat实现了这一点(echo“Hello”| nc -l PORT),但没有起作用,改为使用TCP使其显示为“服务中”,但可能没有奏效,我只创建了一个小实例,并且一旦我安装了httpd并且回复了它一个合适的html文件(http回复),它工作!:)谢谢大家。在星期一我会验证它是问题(bwight,你想写在答案的形式,所以我可以勾选它,如果是这样:)) – 2012-02-25 09:06:17