跳转到内容
搜索文档

错误 522

最后更新 查看 MarkdownAgent 设置

排查 HTTP 522 错误响应。

错误 522:连接超时

当 Cloudflare 联系源站 Web 服务器超时时,会出现错误 522

常见原因

根据超时发生在 Cloudflare 与源站 Web 服务器之间的不同阶段,有两种超时会导致 HTTP 错误 522

  • 在连接建立之前,Cloudflare 发送 SYN 后,源站 Web 服务器未在 19 秒内向 Cloudflare 返回 SYN+ACK(SYN 重试退避方案为 1,1,1,1,1,2,4,8)。
  • 在连接建立之后,源站 Web 服务器未在 90 秒内确认(ACK)Cloudflare 的资源请求。

解决方法

  • 联系你的托管服务提供商,并分享错误详情,以协助排查以下常见原因:

    • Cloudflare IP 地址在 .htaccess、iptables 或防火墙中被限速或阻止。确认你的托管服务提供商允许所有 Cloudflare IP 范围(最常见原因)。如果需要按地理位置限制流量,可以使用 Cloudflare WAF 自定义规则
    • 过载或离线的源站 Web 服务器丢弃了传入请求。
    • 源站 Web 服务器上禁用了 Keepalives
    • Cloudflare DNS 应用中的源站 IP 地址与托管服务提供商当前为你的源站 Web 服务器分配的 IP 地址不匹配。
    • 数据包在源站 Web 服务器处被丢弃。
  • 如果你使用的是 Cloudflare Pages,请验证你已设置自定义域名,并且 CNAME 记录指向你的自定义 Pages 域名

  • 如果你使用的是带有自定义域名的 Workers,对其自身主机名执行 fetch 会导致 522 错误。请考虑使用路由、指向其他主机名,或改为启用 global_fetch_strictly_public 兼容性标志

  • 如果你使用的是 Origin Rules,请确保生成的主机名可以解析。例如,如果你的 Origin Rule 指向 Worker 路由,当该路由的主机名是指向保留地址(如 100::192.0.2.0)的 A 记录时,将返回 522 错误。

  • 如果以上方法都无法解决问题,请在联系 Cloudflare 支持之前,向你的托管服务提供商或站点管理员索取以下信息:

    • 从你的源站 Web 服务器到问题发生前最常连接到源站 Web 服务器的 Cloudflare IP 地址MTR 或 traceroute。识别源站 Web 服务器日志中记录的连接 Cloudflare IP。
    • 托管服务提供商调查的详细信息,例如相关日志或与托管服务提供商的沟通记录。

使用 Origin Analytics 进行诊断

使用 Origin Analytics 检查到源站的 TCP 连接失败情况。如果 Top endpoints 表显示特定路径的 TCP 失败率较高,问题可能与路径相关,而不是源站的普遍问题。Origin Analytics 还可以帮助确认 Cloudflare 边缘是否可以访问你的源站。

这篇文档对您有帮助吗?