504 是一行三位数,背后等的却是几十秒:网关超时值的常见默认值是 30 秒到 60 秒,这是经验范围,不是标准,上游没在这段时间里回话,就回你这个码。网站测速504是什么情况啊,先看清是谁回的码,比码本身更重要。

状态码 谁回的 先看哪
502网关接了,上游给的是坏响应上游进程与端口
503服务不可用进程、限流、维护
504网关等了上游,等到超时上游处理时间与网关超时值
521边缘没连上源站源站是否可达
524边缘等源站超时源站慢查询与长任务

先看这张表。表里 521 和 524 是部分平台自定义的码,不是通用状态码。

「504 就是网站挂了」

504 只说明网关没等到上游的回应。

站点可能还活着,只是某一个接口慢到超时。进程不在的话,多半先给你 502。

那么先看是整页 504,还是只有某个请求 504。只有某个请求,问题就在那一个接口。

「504 就是服务器太慢,加配置就行」

也可能是上游根本没接住:进程死了、端口不通、连接池打满,这几种也可能先给你 502。

那么先看上游进程在不在,再看网关到上游的连接池有没有打满。

进程都不在,加配置没用。

「504 是测速平台自己的事」

测速平台只负责发请求和记录结果,504 是站点侧回的。

那么对一下:同一时刻用别的工具打开同一个页面,是不是也 504。

两处都 504,就不是工具的事。

用宝塔拨测的网站测速跑一次,五段耗时和状态码是分开给的,先看首字节那一段长不长。

「504 只要重启一下就好」

重启能让进程回来,但超时值没调,长任务还在,过一会儿照样 504。

那么先看网关的超时值,再看那一批请求本身要跑多久。超时值要比最长那批请求再多留一截。

「只有 504 才算超时」

502、521、524 都是同一类:等不到上游。

那么记一张自己的对照:哪个码,先看哪一处。别看到红的就重启。

有一处我还没确认:504 这个时间到底算在网关自己身上,还是算到最后那一跳,各家文档写法不一样。我按「网关等上游的总时长」来理解,遇到具体平台还得对一下文档。