一句话解释

504 Gateway Timeout:网关把请求转给了上游,等了一段时间没等到回应,主动放弃并返回 504。

注意是网关「主动放弃」,不是上游「主动拒绝」,这决定了该由谁去修。

和邻居的区别

四个码,四种责任,认错码就找错人。

502:上游回了,但回的东西网关看不懂,属于无效响应,通常要查上游服务本身。

503:服务不可用,可能是维护、过载,或者被主动关闭,信息更明确。

504:什么都没回,等到超时才放弃,问题在于「等得太久」而不是「回错了」。

499 是客户端先断开,和前面几个不是一类,但也常一起出现,别混着统计。

从分段看是谁的问题

分段能告诉你等在哪里,也能告诉你等了多久。

用宝塔拨测的网站测速跑多地区多运营商节点,看 DNS、TCP、TLS、TTFB、下载五段。

前面四段都正常,卡在 TTFB 且时间接近某个固定值:很像网关阈值,值得翻配置核对。

TTFB 很长且每次都不一样:上游本身慢,不是阈值问题,调大超时只能缓解表象。

只有部分地区 504:先看那一路的回源链路,其他地区用户其实毫无感觉。

该往哪查

范围定下来,人就找对了,不用群体广播。

全部节点 504:源站处理能力或依赖,先看应用和数据库,别先换网关。

局部 504:CDN 节点回源,找服务商比改代码快,也更容易定位。

偶发 504:连接池、并发和超时配置,三样一起看,单看一样容易误判。

处理顺序

顺序错了,只是把问题藏起来,下次照样爆。

先确认是不是预期内的超时,有些接口本来就要限时,这类不算故障。

预期外的,先看上游耗时,再看阈值,别一上来就调大超时,那是自欺欺人。

调大超时只是把等待拉长,上游没变快,用户还是等,甚至等得更久。

复测与记录

有比例,才谈得上好转,也才敢说已解决。

同一地址连测三次,确认稳定还是偶发,偶发的先记录比例。

记录状态码、TTFB、影响地区,三样一起写,后面复盘全靠它。

改完再测同一组条件,确认 504 的比例真的降了,别只看「今天没报错」。

504 不可怕,认错码才可怕。

认对了,改起来就直。

直一点,效率就高。

效率高,恢复才快。

恢复快,损失就小。

损失小,业务才安心。

安心,才谈得上长期合作。

长期看,理解比技巧重要。

理解透了,判断就不飘。

不飘,动作才落地。