故障排查

WebSocket连接失败:握手不是101时先查代理和鉴权

资料核对与更新:2026-10-27 · 阅读约2分钟

网页能打开但实时日志连接失败,往往与 WebSocket 握手有关。本文区分握手失败、鉴权失败和建立连接后的断开。

服务器机柜与数据中心环境
服务器机柜与数据中心环境;作者:No machine-readable author provided. Wilweterings assumed (based on copyright claims).;许可:Public domain。主题示意配图,非本文操作截图。 图片来源

实时日志一直显示重连,不代表后台任务一定停止。页面请求和 WebSocket 连接是两条路径,应先在浏览器网络面板查看握手请求,再判断问题在哪一段。

先看握手结果

传统 HTTP/1.1 WebSocket 升级成功会返回 101。若返回 200,检查是不是命中了普通网页;401 或 403 则先检查登录状态、权限或来源限制。这里只讨论常见升级路径,不能把所有协议场景都用同一个状态码判断。

对照代理配置

确认连接路径被转发到真正的实时服务,升级相关请求头没有在代理层丢失。HTTPS 页面通常应使用 wss,避免混合内容阻止连接。先检查服务监听与代理路由,不要为了连通而把内部端口直接暴露到公网。

区分握手后断开

如果已经建立连接,随后固定间隔断开,再看空闲超时、心跳、服务重启和网络切换。记录关闭码及时间,重连采用有上限的退避,避免几百个页面同时高频重试拖垮服务器。

验收时测试首次登录、登录过期和暂停任务三种状态。界面应分别显示“连接正常”“连接中断”“任务暂停”,不能拿连接状态代替任务运行状态。连接恢复后按事件编号补拉日志,防止把重连误当作重新启动任务。

参考资料

资料核对:2026年10月27日。本文为文档综合与操作建议,未宣称完成本站实测。

MDN WebSocket 服务端

MDN 内容安全策略

本文新增价值
围绕WebSocket连接失败整理适用边界、逐步操作与验收方法,区分错误现象和真正原因,避免只给出配置值而缺少验证步骤。