AWS部署React+Node.js项目SSL配置后WebSocket连接失败排查求助
排查WebSocket连接失败问题的方向
1. 检查第三方依赖/SDK
你项目里没写Socket代码,但可能引入的第三方依赖、SDK或分析工具(比如监控、A/B测试、广告插件)在后台自动建立了WebSocket连接:
- 逐个排查
package.json里的依赖,重点看涉及数据追踪、实时功能的包,核对它们的文档是否有自动初始化Socket的逻辑。 - 用浏览器开发者工具的Network面板,过滤WebSocket请求,查看请求的发起堆栈(Initiator列),定位触发连接的具体文件。
2. 验证AWS部署配置
- 负载均衡器/反向代理设置:如果用了AWS ALB或Nginx等代理,检查是否开启WebSocket转发支持。比如ALB需启用WebSocket协议,Nginx要配置转发
Upgrade和Connection请求头。 - 安全组/网络ACL:确认AWS安全组允许443端口的WebSocket流量(wss默认用443端口),网络ACL是否放行相关出入站规则。
3. 排查Let's Encrypt SSL配置细节
- 检查SSL证书是否覆盖
enabler.sustent.in域名,是否存在证书配置错误导致握手失败。 - 确认服务器端SSL配置支持WebSocket所需的TLS版本(TLS 1.2及以上),旧版本TLS可能引发连接问题。
4. 重新确认WDS相关配置
虽然你添加了WDS_SOCKET_PORT=0,但可能配置未生效:
- 确认环境变量是否正确注入到AWS部署环境中(比如ECS任务定义、Elastic Beanstalk的环境变量设置),而非仅在本地
.env文件中添加。 - 检查是否存在其他WDS相关环境变量冲突,比如
WDS_SOCKET_HOST或WDS_SOCKET_PATH被意外设置,导致WDS尝试建立Socket连接。
5. 检查域名解析和目标服务状态
- 确认
enabler.sustent.in域名解析是否正确,是否指向预期的服务器/负载均衡器,排查DNS缓存引发的解析错误。 - 用工具直接测试wss连接:
wscat -c wss://enabler.sustent.in/ws,判断是前端触发问题还是服务端本身不可达。
内容的提问来源于stack exchange,提问作者Vadiraj Kanakagiri
相关产品推荐
相关产品推荐

