AWS负载均衡器完全无法工作,健康检查全部正常
以下是针对该问题的具体排查和解决步骤:
检查负载均衡器安全组的入站规则
AWS默认安全组的入站规则默认仅允许同一安全组内的资源访问。如果负载均衡器使用默认安全组,外部用户的HTTP/HTTPS请求(80/443端口)会被直接拦截,导致超时。
操作:进入负载均衡器的安全组配置页面,确认是否添加了允许外部访问80/443端口的规则。如果没有,添加两条入站规则:- 类型选
HTTP,端口80,源设置为0.0.0.0/0(或根据需求限制特定IP段) - 类型选
HTTPS,端口443,源设置为0.0.0.0/0(或根据需求限制特定IP段)
- 类型选
验证目标组的转发端口配置
健康检查正常不代表流量转发端口匹配。确认目标组的转发端口和EC2实例上服务监听的端口完全一致——比如EC2上的服务跑在80端口,目标组必须设置转发到80,不能是其他端口。
操作:查看目标组的“转发到”配置项,核对端口号与EC2服务的监听端口是否一致。排查DNS解析问题
新创建的负载均衡器,其DNS记录可能还未在全球生效,导致访问时解析失败触发超时。
操作:用nslookup或dig命令查询负载均衡器的域名,检查是否能正常解析到对应的IP地址。如果解析异常,等待10~30分钟后再尝试访问。确认EC2与负载均衡器的安全组互通性
如果EC2和负载均衡器不在同一个VPC的默认安全组内,EC2的默认安全组可能会拒绝来自负载均衡器的流量。即使在同一VPC,若默认安全组的入站规则被修改,也可能导致拦截。
操作:检查EC2的安全组入站规则,确认是否允许负载均衡器所在安全组的流量访问业务端口;若跨VPC部署,需允许负载均衡器所在VPC的CIDR段访问EC2的业务端口。检查VPC网络ACL规则
默认网络ACL允许所有流量,但如果被修改,可能会阻断外部到LB、LB到EC2的流量,或响应流量的出站。
操作:分别查看负载均衡器所在子网、EC2实例所在子网的网络ACL规则,确保:- 允许外部IP到LB的80/443端口入站
- 允许LB到EC2业务端口的入站
- 允许EC2到LB的响应流量出站
- 允许LB到外部的响应流量出站
内容的提问来源于stack exchange,提问作者Raven

