HTTP 503 Service Unavailable

暂时关闭:服务器本身正常运行,但当前无法处理请求——过载或正在维护中。

HTTP 503 是什么意思

HTTP 503 Service Unavailable 是礼貌的停机信号:服务器存在且能正常工作,但由于过载、维护或某个上游依赖不可用,暂时拒绝处理流量。Retry-After 头会告诉客户端应何时再来。

503 与 500 有意区别开来:没有什么东西是损坏的,只是当前没有足够的容量。这正是爬虫和 API 客户端用来决定如何反应的关键区别。

503 错误的常见原因

  • 计划内的维护模式(许多平台在部署时会返回 503)。
  • 流量激增耗尽了 worker、连接数或自动扩缩容的上限。
  • 某个依赖项(数据库、缓存)正在重启,导致应用拒绝请求。
  • DDoS 防护或连接数限制正在削减负载。
  • 虚拟主机因超出套餐限制而暂停或限流了某个站点。

作为访客该如何处理

  • 等待后重试——根据定义,503 是临时性的。
  • 查看该站点的状态页面或社交账号,了解维护公告。

作为站点所有者该如何修复

  • 在维护窗口期间发送带有合理预估时间的 Retry-After。
  • 解决容量问题:扩展 worker/实例数量、添加缓存、将耗时操作放入队列。
  • 让健康检查能够区分“正在启动”和“已失效”,以免编排系统反复震荡。
  • 尽量缩短维护期间的 503 时长——如果可以,提供缓存页面,而不是完全下线。

示例响应

HTTP/1.1 503 Service Unavailable
Retry-After: 120
Content-Type: text/html

<html><body><h1>Down for maintenance, back in 2 minutes</h1></body></html>

SEO 影响

503 是对 SEO 安全的停机方式:Googlebot 能理解“暂时不可用”,会稍后重试,并保留对你页面的索引。在停机期间用 200(重复内容)或 404/410(取消索引!)提供维护页面,是网站在无意间损失排名的常见方式。

常见问题

维护页面应该返回 503 吗?

可以,只要附带 Retry-After 头。它会告诉爬虫此次故障是临时的,从而保护你的搜索排名。

一个网站能安全地返回 503 多久?

以天为单位而非以周为单位。Google 会将长时间(大致超过一到两周)的 503 视为网站可能已经消失的信号,并开始移除相关 URL。

500 和 503 有什么区别?

500 表示服务器在处理过程中失败;503 表示服务器因过载或维护而有意拒绝服务。