网站出现 502 Bad Gateway 的排查方法
从代理入口、上游进程、网络端口、日志和最近变更逐层检查 502,而不是先盲目重启。
状态码是服务器对每次请求的三位数回执。分清五大类与常用码,掌握 301 与 302、404 与 410 的使用时机,避开软 404。
浏览器每请求一个地址,服务器都会回一个三位数的状态码:它是"成功收到""去别处找""你搞错了"还是"我出事了"的官方 shorthand。排障时先拿状态码,能省掉一半瞎猜——它是服务器亲口说的话。
| 状态码 | 含义 | 站长该怎么办 |
|---|---|---|
| 301 | 永久搬家 | 换域名、规范地址时用,权重会转移到新地址 |
| 302 | 临时跳转 | 临时维护、活动页跳转;会回来就用它 |
| 404 | 没有这个页面 | 确认是删了还是链接写错,给友好的 404 页 |
| 410 | 永久删除 | 确定不再回来的内容,比 404 语气更强 |
| 500 | 程序内部错误 | 看应用日志,多半是代码或配置炸了 |
| 502 | 网关拿到坏回应 | 后端服务没起来或崩了,是最常见的上线事故 |
| 504 | 上游超时 | 后端太慢没在时限内回应,往"为什么慢"查 |
301 与 302:301 告诉搜索引擎"旧地址永久作废,只收新的",权重转移过去;302 表示"临时借道,旧的还会回来"。临时跳转误用 301,旧地址的收录会被清掉,想恢复要等很久。拿不准就问自己:这个跳转会撤销吗?会,就用 302。
404 与 410:都表示"内容没了",区别在语气。404 是"现在没有"(可能重来、可能写错链接);410 是"永久删除,别再来了"。删掉的活动页、下线的产品,用 410 能帮搜索引擎更快清掉收录。
自定义错误页返回了 200
很多站点把"不存在的地址"显示成一个漂亮的错误页,但状态码返回 200(正常)。搜索引擎会把它当正常页面收录,浪费抓取额度,你的统计里也混进一堆假页面。验收方法:浏览器地址随手改一个乱路径,用开发者工具的网络面板看真实状态码是不是 404。
排障习惯:任何"打不开/跳转不对"的问题,先用开发者工具或 curl -I 看状态码,再决定往客户端还是服务端查。看到 5xx 先看服务,看到 3xx 数清跳了几跳。
2xx 正常、3xx 跳转、4xx 访客错、5xx 服务器错——先记四大类,再按需查表;拿状态码开场,排障就有方向。
下一步该读什么
本文要点
先收集证据,再进行小范围变更;操作前留好备份,操作后用明确的检查项验证结果。
继续学习
从代理入口、上游进程、网络端口、日志和最近变更逐层检查 502,而不是先盲目重启。