通过AWS负载均衡器端口转发遇502错误,求SSL配置方案
问题排查与解决方案
一、HTTP 80转6510的502错误修复
1. 目标组协议与端口匹配
你的自定义服务器运行在6510端口,必须确保目标组的协议和端口与服务器实际监听的完全一致:
- 目标组配置:
- 若服务器以HTTP协议监听6510,设为
HTTP:6510;若为自定义TCP服务,设为TCP:6510 - Target Port保持
6510,不要启用端口覆盖(除非有明确需求) - 负载均衡器80端口监听器直接转发至该目标组
- 若服务器以HTTP协议监听6510,设为
2. 服务器绑定地址检查
Windows EC2上的自定义服务器,必须监听0.0.0.0:6510,而非127.0.0.1:6510。若仅绑定本地回环地址,负载均衡器无法访问到服务器。
- 验证命令:在EC2实例内执行
netstat -ano | findstr :6510,确认监听地址为0.0.0.0或实例内网IP
3. 健康检查细节复核
尽管健康检查显示通过,仍需确认:
- 若为HTTP服务,健康检查路径需指向服务器能返回200 OK的端点(如
/health),端口设为6510 - 若为TCP服务,确保健康检查直接检测6510端口的连通性
二、HTTPS 443端口转发与SSL配置
要实现WebSocket over HTTPS,按以下步骤配置:
- 上传SSL证书至ACM:将域名对应的SSL证书上传到AWS证书管理器(ACM),或直接通过ACM免费生成域名证书
- 配置443端口监听器:
- 协议/端口设为
HTTPS:443 - 选择ACM中的目标SSL证书
- 转发规则指向与80端口相同的目标组(即EC2的6510端口)
- 协议/端口设为
- WebSocket协议兼容:
- 负载均衡器会自动处理WebSocket的
Upgrade请求头,无需额外配置,但需确保自定义服务器本身支持WebSocket协议 - 客户端连接地址改为
wss://你的域名,对应负载均衡器443端口
- 负载均衡器会自动处理WebSocket的
三、额外验证步骤
- 内网连通性测试:在同VPC的其他实例上执行
curl http://EC2内网IP:6510,确认服务器能正常响应 - 负载均衡器日志排查:查看CloudWatch中的负载均衡器访问日志,定位502错误的具体触发原因(如目标无响应、协议不匹配)
- Windows防火墙检查:确保EC2实例的本地Windows防火墙已允许6510端口的入站连接(安全组放行后,本地防火墙仍可能拦截)
内容的提问来源于stack exchange,提问作者Christian Price
相关产品推荐
相关产品推荐

