跳转到内容
搜索文档

错误 520

最后更新 查看 MarkdownAgent 设置

排查 HTTP 520 错误响应。

错误 520:Web 服务器返回未知错误

当源站服务器向 Cloudflare 返回空、未知或意外响应时,会发生此错误。

常见原因

此错误通常由以下情况触发:

  • 源站服务器崩溃或配置错误。
  • 防火墙或安全插件在源站拦截了 Cloudflare IP
  • 标头超过 128 KB(通常因 Cookie 过多导致)。
  • 空响应或格式错误的响应,缺少 HTTP 状态码或响应正文。
  • 缺少响应标头,或源站 Web 服务器未返回 正确的 HTTP 错误响应
  • 源站服务器的 HTTP/2 配置不正确。
  • 在 Cloudflare 上启用了 Authentication Origin Pull,但源站 未按预期配置

解决方案

  • 联系您的托管服务提供商或站点管理员,并提供必要的 错误详情 以协助排查。请对方检查源站 Web 服务器错误日志中是否有崩溃记录,并核对本节前述的 常见原因

  • 如果在源站服务器上启用了 HTTP/2,请确保其配置正确。Cloudflare 会通过 ALPN 连接到声明支持 HTTP/2 的服务器。如果源站 Web 服务器接受了 HTTP/2 连接,但随后未遵守或不支持该协议,将返回 HTTP 520 错误。您可以在 Cloudflare 仪表板的 Speed > Settings(设置) > Protocol Optimization(协议优化) 中禁用 HTTP/2 to Origin

  • 如果在联系托管服务提供商或站点管理员后 520 错误仍然存在,请向 Cloudflare 支持 提供以下信息:

    • 发生错误时请求的资源的完整 URL。
    • 520 错误消息中的 Cloudflare cf-ray
    • http://<YOUR_DOMAIN>/cdn-cgi/trace 的输出。
    • 两个 HAR 文件

使用日志中的 OriginResponseStatus 诊断源站连通性

在查看 Cloudflare Logs(通过 Logpushhttp_requests 数据集)时,OriginResponseStatus 字段显示源站返回的 HTTP 状态码。

OriginResponseStatus 值为 0 根据上下文有两种不同含义:

  • 未联系源站(缓存命中或已重新验证的响应): 请求由缓存提供,Cloudflare 未联系源站。计算源站错误率时请过滤掉这些记录——它们并不表示源站存在问题。
  • 源站连接失败: Cloudflare 尝试联系源站,但未收到 HTTP 响应。源站可能在发送响应标头前断开了 TCP 连接、在发送标头前超时,或发送了 Cloudflare 无法解析的格式错误响应。Cloudflare 会自行生成错误页面(通常为 520 或 500)。

要区分这两种情况,请检查同一日志记录中的 CacheStatus 字段:

  • CacheStatushitrevalidated → 未联系源站;OriginResponseStatus = 0 是预期行为
  • CacheStatusmissexpired → Cloudflare 已联系源站;OriginResponseStatus = 0 表示连接失败

使用 Origin Analytics 诊断

使用 Origin Analytics 比较源站返回的内容(originResponseStatus)与 Cloudflare 向最终用户提供的内容(edgeResponseStatus)。如果源站返回了 200 但 Cloudflare 提供了 520,则响应很可能格式有误——例如标头过大或连接提前关闭。Top endpoints 表格可帮助您识别哪些路径正在产生 520 错误。

这篇文档对您有帮助吗?