代理返回 502、503、504 怎么排查:网关、上游节点、目标站和重试边界

代理网关连接三个上游节点并分别显示不可达、过载和响应延迟的排查示意图

代理请求返回 502、503 或 504 时,问题已经不只是“能不能连上代理”。这三个状态通常表示某个网关或中间服务在转发请求时,没有从上游得到可用结果。排查的第一件事,是确认状态码由代理入口、上游节点、反向代理还是目标站发出;如果连错误来源都没有确定,直接更换线路或连续重试只会增加变量。

本次排查应固定客户端、代理协议、目标地址、请求方法和测试时间窗口。先保存完整状态码、响应头、响应体摘要、连接耗时、首包时间、出口 IP 和请求标识,再做最小复测。任何一步仍无法解释错误来源时,都应暂停批量任务。

先分清 502、503 和 504 分别在说什么

502 通常表示网关从上游收到无效响应;503 表示服务暂时不可用,常见于维护、过载或资源耗尽;504 表示网关等待上游响应超时。它们描述的是网关看到的结果,不一定能直接证明哪台服务器发生故障。

同一个状态码也可能由不同网络跳点生成。先查看响应头、错误页样式、服务器标识、请求追踪字段和时间特征,判断它来自本地代理入口、服务商网关、上游出口还是目标站。若请求在建立连接前就被拒绝,应转入主机、端口与防火墙检查顺序,不要继续按网关错误处理。

第一步:保存一份可复现的最小请求

选一个不会改变账号或业务状态的轻量请求,固定目标域名、路径、方法、请求头、代理协议和认证方式,连续测试少量次数。每次记录开始时间、DNS 结果、连接耗时、TLS 耗时、首包时间、总耗时、状态码、响应头和请求标识。

  • 通过条件:错误可以在相同条件下稳定复现,且能够确定生成状态码的网络跳点。
  • 失败条件:同一条件在 502、503、504、超时和成功之间无规律变化。
  • 停止条件:最小请求会触发写入、登录、支付或其他不可逆业务动作。

重试次数和间隔应提前写明。可以沿用超时、错误码与重试顺序中的记录方式,避免测试脚本在故障期间形成无上限循环。

第二步:判断故障范围是单目标、单线路还是全入口

用同一代理线路访问两个经过批准的低风险目标,再用另一条已知正常线路访问原目标。一次只改变一个变量,以区分目标站故障、单个上游节点故障和整个代理入口故障。

复测结果更可能的位置下一步
同一线路仅一个目标报错目标站或该目标的上游路径比较目标站状态、DNS、TLS 和响应时间
同一线路多个目标报错代理入口、上游节点或共享网关检查节点状态与服务范围
换线路后原目标恢复原线路或原节点路径隔离原线路并做冷却复测
所有线路访问原目标都报错目标站、公共上游或本地请求条件停止扩量并保留请求证据
结果持续来回变化容量、负载均衡或间歇性上游故障降低频率并扩大观察窗口

第三步:检查网关到上游节点的连接条件

确认上游主机、端口、协议入口和认证范围仍然有效。502 可能来自错误协议或上游返回内容无法解析,504 可能来自上游连接或响应阶段超时,503 则可能表示节点暂时不接收新请求。检查时要区分连接超时、TLS 握手、首包等待和响应传输。

如果错误集中在 TLS 阶段,使用SNI、证书和协议链路检查表逐项核对;如果网关已经收到响应但页面仍很慢,则对照延迟、首包和并发检查方法拆开测量,不要只看总耗时。

第四步:核对容量、并发和维护窗口

503 常见于服务维护、连接池耗尽、节点过载或容量保护,但不能只凭状态码断定原因。把并发降到一个请求,关闭自动重试,再比较低并发和原并发下的成功率、首包时间与错误分布。如果低并发稳定而并发提高后 503 增多,应先保留容量证据,不要立即恢复原负载。

同时确认是否存在已公告的维护窗口、节点下线、线路迁移或配额限制。没有维护信息时,记录异常开始时间、受影响节点、请求量和恢复时间,由维护方确认服务状态。

第五步:为重试和故障切换设置边界

502、503、504 都可能是暂时错误,但不代表所有请求都适合自动重试。只读且可重复的请求可以在有限次数内采用递增等待;会改变业务状态的请求,必须先确认上一次是否已经被上游执行,避免重复提交。

  • 限定最大尝试次数和总等待时间。
  • 503 带有明确等待提示时,按提示安排下一次测试。
  • 504 后先确认上游是否已接收或执行请求。
  • 连续失败达到阈值后进入冷却,不再立即切换。
  • 故障切换后使用少量无状态请求验证,再恢复业务。

需要跨线路恢复时,使用连续失败、冷却时间与恢复条件作为切换门槛,避免单次网关波动触发整批任务迁移。

502、503、504 排查决策表

检查层要记录的证据通过条件失败后动作
错误来源响应头、错误页、请求标识、生成时间能确定状态码由哪一跳产生停止改配置,先补齐来源证据
故障范围目标、线路、节点和时间窗口能区分单目标、单线路或全入口隔离变量后重新做最小复测
上游连接DNS、端口、TLS、连接和首包耗时上游入口有效且响应阶段明确转入协议、证书或节点维护检查
容量状态并发、成功率、503 分布、维护信息低并发稳定且容量边界可解释降并发、冷却并联系维护方
重试安全请求是否可重复、上次执行结果重试不会造成重复业务动作停止自动重试并人工确认状态
恢复验证连续成功次数、出口、延迟和错误码小流量窗口内结果持续稳定移出可用池并保留故障记录

修复后按小流量顺序恢复

状态码消失后,先验证代理出口、目标站响应、DNS、TLS、首包时间和会话要求,再运行少量无状态请求。只有连续结果稳定、错误来源已经解释、旧请求执行状态已经确认,才恢复需要保持会话或会改变业务状态的任务。

不要把一次 200 响应当作完全恢复。记录连续成功次数、观察窗口、节点、出口 IP、并发、平均首包时间和最后一次网关错误。若 502、503、504 在短时间内再次出现,应把线路移出可用池,而不是提高重试次数。

把网关错误写进日常记录

团队记录至少应包含请求时间、目标域名、代理入口、出口 IP、节点、状态码、响应头摘要、DNS 结果、连接耗时、TLS 耗时、首包时间、并发、重试次数、请求标识、恢复动作和负责人。可以直接扩展出口 IP、状态码与会话日志模板,让每次网关错误都能按相同字段复盘。

最终判断不是“这个状态码要不要换代理”,而是错误由哪一跳产生、影响范围有多大、请求是否可以安全重试,以及何时达到暂停或恢复条件。只有这些问题有记录,502、503、504 才能从模糊故障变成可验证的网络事件。

类似文章