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 表示服务器因过载或维护而有意拒绝服务。