ALB无法将流量转发至Elastic Beanstalk的EC2实例 持续返回503错误
问题根因
你遇到的503错误核心是ALB和后端EC2实例的HTTPS握手失败,和你使用自签名证书直接相关。健康检查通过是因为健康检查配置和实际业务转发配置不一致,通常是健康检查走了HTTP协议/80端口,不受自签名证书影响。
解决方案
- 首先确认目标组配置:如果要ALB向后端转发HTTP2流量,目标组的后端协议需要选择
HTTPS,且协议版本明确指定为HTTP2,不要使用默认的HTTP1.1。 - 解决自签名证书信任问题,二选一即可:
- 方案1:取消端到端加密(VPC内部通信默认安全),将后端Nginx的443端口调整为支持明文HTTP2(h2c),同时把目标组的后端协议改为
HTTP、协议版本选择HTTP2,无需再做证书验证即可正常通信。 - 方案2:保留端到端加密,将生成自签名证书的根证书上传到AWS Certificate Manager(ACM),在目标组的高级配置中指定信任该根证书,ALB就会正常信任后端的自签名证书。
- 方案1:取消端到端加密(VPC内部通信默认安全),将后端Nginx的443端口调整为支持明文HTTP2(h2c),同时把目标组的后端协议改为
- 最后检查ALB 443端口监听器的转发规则,确认默认规则指向你配置的目标组,没有更高优先级的错误规则拦截流量。
内容的提问来源于stack exchange,提问作者Antonio Gamiz Delgado
相关产品推荐
相关产品推荐

