520 是 Cloudflare 专用的状态码。当源 Web 服务器返回空的、未知的或意外的响应,导致 Cloudflare 无法转发时,Cloudflare 就会返回 520。对于不属于其他任何 52x 状态码的源服务器响应,它是一个兜底的状态码。
典型的触发原因包括:源服务器在 Cloudflare 建立连接后崩溃或重置连接;响应没有有效的状态行或响应头;响应头超出 Cloudflare 的大小限制(通常是因为 Cookie 过多或过大);以及源服务器防火墙切断来自 Cloudflare IP 地址的连接。源服务器上的 nginx return 444 到达访客那里时也会变成 520。
Cloudflare 的错误页面会显示一个 Ray ID;同一时刻源服务器的错误日志和访问日志通常能揭示原因。通过 HTTP/2 和 HTTP/3 访问时没有原因短语,因此只能看到数字。
响应示例
HTTP
HTTP/1.1 520 Web Server Returned an Unknown Error
Date: Fri, 06 Nov 2026 10:15:32 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Frame-Options: SAMEORIGIN
Referrer-Policy: same-origin
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Server: cloudflare
CF-RAY: 8f3a1b2c4d5e6f70-FRA SEO 与重定向检测
搜索引擎对 520 的处理与任何 5xx 错误相同:抓取速度放慢,持续出现的错误会导致页面被移出索引。520 经常是间歇性的,因此要多次检测受影响的 URL(例如使用批量重定向检测),并将结果与直接请求源服务器的结果进行比较。
常见原因与使用场景
- 源服务器上的应用崩溃,或在未发送响应的情况下关闭了连接。
- 响应头过大,例如
Set-Cookie响应头过多或令牌过大。 - 源服务器防火墙或安全插件重置了来自 Cloudflare IP 地址段的连接。
- 源服务器发送了格式错误或空的 HTTP 响应,例如由于 HTTP/2 配置有误。