如何调试失败的 AWS 弹性负载均衡器健康检查
Posted
技术标签:
【中文标题】如何调试失败的 AWS 弹性负载均衡器健康检查【英文标题】:How to debug failed AWS elastic load balancer health checks 【发布时间】:2014-01-08 04:25:49 【问题描述】:我在尝试调试 ELB 设置时不知所措。
我已经设置了一个带有单个实例的负载均衡器。我从实例和 EC2 内的另一个实例验证了配置的运行状况检查是否有效。此时,我删除了所有可能冲突的安全组规则。负载均衡器仍然认为实例不可访问。
我已经大量搜索并浏览了this checklist。
如何获取有关运行状况检查失败的更多信息?我能做的最接近负载均衡器并重现故障的方法是什么?
谢谢!
【问题讨论】:
【参考方案1】:由于以下一种或多种原因,您的注册实例可能无法通过负载均衡器执行的运行状况检查:
问题:实例关闭与负载均衡器的连接。
原因:如果连接空闲超过 60 秒,Elastic Load Balancing 会终止连接。当负载均衡器的两端(客户端到负载均衡器和负载均衡器到后端实例)都没有发生读取或写入事件时,将建立空闲连接。
解决方案:在您的注册实例上将空闲超时设置为至少 60 秒。
问题:响应超时。
原因:当负载均衡器执行健康检查时,实例可能会承受很大的负载,并且响应时间可能比您配置的超时间隔长。
解决方案:尝试调整健康检查设置的超时时间。
问题:公钥认证失败。
原因:如果您使用启用了后端身份验证的 HTTPS 或 SSL 负载均衡器,如果证书上的公钥与配置的公钥不匹配,则公钥身份验证将失败负载均衡器。
解决方案:检查您的 SSL 证书是否需要更新。如果您的 SSL 证书是最新的,请尝试在负载均衡器上重新安装证书。
以下指南可帮助您对 Elastic Load Balancer 进行进一步故障排除: Troubleshoot Elastic Load Balancing
尤其是健康检查:Troubleshooting Elastic Load Balancing: Health Check Configuration
【讨论】:
谢谢安德烈。不幸的是,我没有使用 SSL,我的 tomcat 连接超时设置为 77 秒,并且我验证它实际上仅在所述数量之后才关闭连接,并且服务器上没有活动可言。我检查了安全组配置。还有一些我做错了。从 AWS 工具提供的信息中,我无法弄清楚是什么。 @jbelis HealthCheck 连接到 Apache。在日志中查找以下内容 (/var/log/httpd/access_log
):10.2.3.4 - - [31/Jan/2012:18:34:59 +0000] "GET / HTTP/1.1" 200 7583 "-" "ELB-HealthChecker/1.0"
以上是关于如何调试失败的 AWS 弹性负载均衡器健康检查的主要内容,如果未能解决你的问题,请参考以下文章
AWS 负载均衡器运行状况检查:运行状况检查失败,代码如下:[301]