网站测速504是什么原因
504 的意思是:前面的网关等后端,等到超时就放弃了。它不是站点挂了,是站在等。
网站测速504是什么原因,看两样就够:状态码出现在哪一段,以及五段耗时里哪一段最长。下面七问按这个顺序走。
| 现象 | 卡在哪一层 | 先看什么 |
|---|---|---|
| 无状态码、直接失败 | 解析、连接或握手 | dns、tcp、tls 三段 |
| 有状态码、ttfb 极长 | 应用层或网关 | 后端进程、超时配置 |
| 504 且 ttfb 接近网关超时值 | 网关在等后端 | 后端响应时间 |
| 504 且 ttfb 很短 | 网关自己返回 | 网关配置与上游列表 |
是不是所有节点都返回 504
不是所有,先看比例。
全部节点 504,问题在站点侧或网关。只有几个节点 504,先看那些节点的出口。
判据是 504 的比例过半。过半是经验线。过半就只查站点,别查本地。
为什么有的节点是超时,有的直接 504
状态码是网关给的,超时是没等到。
同一个站,网关超时值设得短,就早给 504。设得长,就一直等,测速端先断,这一路没有状态码。
判据是同一时刻两种现象都有。那就是超时值和上游耗时贴得太近。
ttfb 很长,到底是后端慢还是网关慢
<figure><img src="https://image.bt.cn/20261113/387a7a9112836ef84b7f2e241bcc49bd.svg" alt="实际耗时贴着超时阈值线,说明是等满了才放弃" loading="lazy" width="1200" /><figcaption>贴着那条线,才是等满;差得远,是网关自己卡住</figcaption></figure>
看 ttfb 有没有贴着那个超时值。
贴着,是网关等满才放弃,慢在后端。差得远,是网关自己卡住。
判据是 ttfb 几乎每次都落在同一个数上。固定的数,通常是配置值。
用宝塔拨测的网站测速跑一次,五段耗时和状态码是分开列的,先看哪一段最长。
只有 504 没有别的错,还要看什么
看后端的并发和排队。
判据是低峰正常、高峰 504。那就不是代码挂,是顶不住。
那么先看并发数和排队长度,再看单请求耗时。
前端改一改能不能好
改前端不会让 504 消失。504 是后端没在时限内回话。
判据是静态资源也 504。静态都中招,说明网关那一层就在超时。
换成 502 或 503 是不是同一件事
不是。502 是网关拿到无效响应,503 是没有可用后端,504 是等超时。
三个码指向三种处置:502 看后端进程,503 看后端存活,504 看响应时限。
判据是同一站点在几分钟内换着出现。那就先看后端是不是在重启。
改完怎么确认好了
同一批节点、同一时段再跑一次。
判据是 504 消失,且 ttfb 明显短于原来的固定值。只消失、ttfb 还贴着那个数,说明只是把时限调长了。
有人把网关超时从 30 秒调到 120 秒,504 不见了,用户还是等两分钟。那不是修好,是把等待拉长了。