带有 IIS 的 Amazon 弹性负载均衡器

Posted

技术标签:

【中文标题】带有 IIS 的 Amazon 弹性负载均衡器【英文标题】:Amazon Elastic Load Balancer with IIS 【发布时间】:2014-05-15 00:25:03 【问题描述】:

我在 EC2 实例上的 IIS 下托管了 ASP.NET MVC 应用程序。 一旦我在 IIS 中设置了正确的绑定,我就可以通过 EC2 DNS 毫无问题地访问应用程序

http - EC2 DNS - 端口 80

但是,如果我添加了一个弹性负载均衡器,然后我尝试通过负载均衡器 DNS 访问该 Web 应用程序,那么我可以让它工作的唯一方法是在 IIS 中添加一个空绑定

"http:80 的空主机名"

但这不可能。 如果我不添加它,ELB 会认为我的实例运行状况不佳,当我访问 ELB DNS 时,我只会收到 HTTP 503 Service Unavailable。

EC2 实例位于 Auto Scaling 组中。 我尝试将该实例的安全组从允许 HTTP:80 的所有 IP 修改为仅允许负载均衡器 Ip (amazon-elb/amazon-elb-sg)

任何想法我做错了什么?

谢谢

【问题讨论】:

【参考方案1】:

我在 ELB 后面运行多个 IIS 服务器。以下是您需要确保的事项:

    ELB 安全组可以接受来自任何地方 (0.0.0.0/0) 的端口 80 流量 允许 ELB 安全组将出站端口 80 流量发送到运行 IIS 的 EC2 实例。这一点对于在 VPC 中设置的 ELB 有效。因此请忽略这一点。 应该允许您运行 IIS 的 EC2 实例的 EC2 安全组接受来自负载均衡器的端口 80 流量。

如果整个设置都在 VPC 中,那么您需要检查的其他事项很少。如果是这种情况,请告诉我们

肯定不需要对 IIS 进行任何配置更改。

【讨论】:

感谢您的快速回答。如何设置#2? “允许安全组向 EC2 发送出站端口 80 流量”。在亚马逊控制台的“安全组”部分,我看到我只能编辑入站规则。另外..我不完全理解#3。你能给我更多的细节吗?我刚刚开始使用亚马逊服务。谢谢 要明确一点:我遇到的最大问题是我必须在 IIS 中为网站设置一个空出价。而且,如果我将 ELB DNS 绑定到 IIS 中的 http:80,为什么无法通过 ELB 访问应用程序? 嘿。对我最后的评论有什么想法吗?

以上是关于带有 IIS 的 Amazon 弹性负载均衡器的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在没有负载均衡器的情况下使用带有 SSL (HTTPS) 的 Amazon Elastic Beanstalk?

登录后具有 cognito 的 Amazon 负载均衡器返回 401

如何调试失败的 AWS 弹性负载均衡器健康检查

是否不需要使用带有 ElasticSearch 的负载均衡器?

自动缩放,弹性 IP

AWS 通过弹性负载均衡器发送 http 请求