Sve*_*sen 12 load-balancing amazon-ec2 amazon-web-services amazon-elb
我正在尝试在弹性负载均衡器下设置两个实例,但无法弄清楚我应该如何通过负载均衡器访问实例.
我已经使用安全组设置了实例,以允许从任何地方访问某些端口.我可以使用"Public DNS"(publicdns)主机名和端口PORT直接访问实例:
HTTP:// [publicdns]:PORT /
负载均衡器包含两个实例,它们都是"服务中",它将端口(PORT)转发到实例上的同一端口.
但是,如果我要求
http:// [dnsname]:PORT(其中dnsname是为ELB列出的A记录)
它没有连接到实例(连接超时).
这不是使用负载均衡器的正确方法,还是我需要做任何事情来允许访问负载均衡器?与负载均衡器相关的安全组的唯一提及是仅限制对负载均衡器的实例访问,但我不希望如此.我希望能够单独访问它们.
我确信有一些简单而愚蠢的东西让我忘记了,没有意识到或做错了:P
干杯,斯文德.
额外信息添加:
Load Balancer的端口配置如下所示(实际上是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响应?...并且确实没有工作暗示为什么负载平衡本身也不起作用?
听起来您已正确设置所有内容。它们与实例进入负载均衡器的端口相同吗?或者您是否将请求转发到另一个端口?
顺便说一句,当我配置负载均衡器时,我通常不喜欢在任何端口上向公众开放我的实例。我只允许负载均衡器向这些实例发出请求。我过去注意到很多人会向实例的 IP 发出恶意请求,试图找到安全漏洞。我什至看到有人试图暴力登录我的 Windows 机器......
要仅为负载均衡器创建安全规则,请运行以下命令,并删除负载均衡器正在使用的端口的安全组中的任何其他规则。如果您不使用命令行来运行这些命令,那么只需让我知道您正在尝试使用哪个界面,我可以尝试提供一个适合您的示例。
elb-create-lb-listeners <load-balancer> --listener "protocol=http, lb-port=<port>, instance-port=<port>"
ec2-authorize <security-group> -o amazon-elb-sg -u amazon-elb
Run Code Online (Sandbox Code Playgroud)
回到你的问题。就像我说的,您解释的步骤是正确的,打开实例上的端口并将端口转发到实例应该就足够了。也许您需要发布实例的安全组和负载均衡器的完整配置,以便我可以查看是否有其他因素影响您的情况。
| 归档时间: |
|
| 查看次数: |
17008 次 |
| 最近记录: |