AWS ELB问题求助:实例OutOfService及HTTPS连接失败
问题1:EC2实例加入ELB后显示OutOfService排查方案
- 核对健康检查配置:确保ELB健康检查的协议、端口、路径和Node.js服务完全匹配。比如健康检查用HTTP协议+80端口,那Node.js必须监听80端口,且指定的检查路径(如
/health)能返回2xx状态码;如果路径不存在或返回4xx/5xx,健康检查会直接失败。 - 检查安全组规则:
- EC2实例的安全组:入站规则要允许ELB的安全组(或ELB的IP段)访问健康检查的目标端口。
- ELB的安全组:出站规则要允许访问EC2实例的健康检查端口。
- 验证实例本地服务状态:
- 登录EC2实例,用
curl http://localhost:[服务端口]/[检查路径]测试本地响应,确认服务正常返回2xx。 - 检查Node.js服务是否正常运行,用
ps aux | grep node确认进程存在,且监听端口正确。
- 登录EC2实例,用
问题2:HTTPS连接报WRONG_VERSION_NUMBER错误解决方法
这个错误核心是SSL/TLS协议版本不匹配,大概率是ELB监听器转发配置错误:
- 检查HTTPS监听器(443端口)的转发规则:
- 如果你的Node.js后端只监听HTTP(没配置SSL证书),ELB的HTTPS监听器必须设置为转发到HTTP协议+实例的HTTP端口,而不是转发到HTTPS。如果错误配置成HTTPS转发到HTTPS,ELB会向后端发SSL请求,但后端只懂HTTP,就会触发版本不匹配错误。
- 若需ELB与后端加密通信:
- 确认Node.js服务已正确配置SSL证书,且TLS版本与ELB监听器的SSL策略兼容(比如ELB启用TLS1.2/1.3,后端Node.js版本需支持对应版本)。
- 核对证书与域名:确保ELB绑定的SSL证书域名与Route53解析的域名一致,避免因证书不匹配间接引发协议问题。
内容的提问来源于stack exchange,提问作者Tobay
相关产品推荐
相关产品推荐

