如何将 AWS ELB 状态更改为 InService?

Posted

技术标签:

【中文标题】如何将 AWS ELB 状态更改为 InService?【英文标题】:How to change AWS ELB status to InService? 【发布时间】:2019-01-10 03:03:29 【问题描述】:

WordPress 应用程序部署在具有负载均衡器的 AWS Elastic Beanstalk 中。我有时会看到 ELB 5XX 错误。为了使实例 OutOfService 的不健康阈值计数更高,我将 Unhealthy Threshold 设置为 10。但有时健康检查失败并且健康状况严重。我有时会收到错误消息“对 ELB 的请求的百分比因 HTTP 5xx 而失败”。我检查了 ELB 访问日志,有时请求获取超时 (504) 错误,在连续数 504 之后,ELB 使实例 OutOfService。我正在尝试修复哪个请求失败。

我不知道,是否可以尽快使实例“InService”。因为有时实例会在 2-3 小时内处于 OutOfService 状态,这真的很糟糕。有什么好的方法来处理这种情况。这种情况我真的很麻烦。看起来服务结束后,我无事可做。我对 AWS 比较陌生。请帮忙。

【问题讨论】:

【参考方案1】:

解决这个问题:

1) HTTP 504 表示超时。负载均衡器在您的后端访问的资源无法响应。从 AWS 控制台确定运行状况检查的路径。

2) 在您的浏览器中验证您是否可以访问绕过负载均衡器的运行状况检查路径。这可能意味着临时将 EIP 分配给 EC2 实例。如果负载均衡器运行状况检查是“/test/myhealthpage.php”,则使用“http://REPLACE_WITH_EIP/test/myhealthpage.php”。对于 HTTPS 侦听器,请在您的路径中使用 https。

3) 调试您指定的路径超时的原因并修复它。

注意:健康检查路径不应指向执行复杂测试或操作的页面。健康检查应该是快速简单的 GO / NO GO 类型的页面。

【讨论】:

1) 健康检查协议是 TCP 和端口 80。2) 我的 ec2 实例已经有公共 IP,无法通过该 IP 访问应用程序。我的域来自 GoDaddy,因此我将 AWS 名称服务器设置为 GoDaddy。我不知道这是否是无法访问情况的原因。但我创建了 A 记录,将域名指向负载均衡器。 3)我定期监控EL​​B日志和apache访问日志。我发现一些端点出现 5XX 错误。有时是 500,有时是 504。如果 EB 健康状况严重,该怎么办?随着应用程序宕机 2-3 小时。

以上是关于如何将 AWS ELB 状态更改为 InService?的主要内容,如果未能解决你的问题,请参考以下文章

从客户端到 AWS ELB 的持久连接

AWS Cloudfront + 负载均衡器,url 从主域更改为负载均衡器子域

如何让 AWS ELB 将实际主机名而不是 ELB 的主机名转发到目标组?

如何在自动缩放组中添加 aws new elb

如何将 AWS ELB 连接到运行 MS SQL 的 RDS?

当您的实例位于 ELB 之后时,您如何为 AWS 建立维护页面?