Cloudflare 5XX 错误故障排除

诊断并解决 Cloudflare 代理的站点的 5XX 错误。


概述

在排查 5XX 错误时,正确的操作步骤是先联系您的主机提供商或站点管理员来排除故障并收集数据。

Cloudflare 支持仅协助域所有者解决问题。  如果您是网站访问者,请联系网站所有者。

需要向主机提供商提供的错误详情

  1. 具体的 5XX 错误代码和消息
  2. 发生 5XX 错误的时间和时区
  3. 造成 HTTP 5XX 错误的 URL(例如:https://www.example.com/images/icons/image1.png
错误原因并不始终都能在源站错误日志中找到。请检查 Cloudflare 和源站 Web 服务器之间的所有负载均衡器缓存、代理或防火墙。

下方的各个错误描述中列出了应向主机提供商或站点管理员提供的其他详情。Cloudflare Custom Error Pages 可更改本文探讨的默认错误页面的外观。


Error 500: internal server error

500 错误通常表示您的源站 Web 服务器存在问题。  Error establishing database connection 是源站 Web 服务器生成的常见 HTTP 500 错误消息。  联系您的主机提供商来解决。

解决方案

向主机提供商提供详细信息,协助对问题进行故障排除。

不过,如果 500 错误的 HTML 响应代码中包含“cloudflare”或“cloudflare-nginx”,请将以下信息提供给 Cloudflare 支持

  1. 您的域名
  2. 发生 500 错误的时间和时区
  3. 观察到 500 错误的浏览器的 www.example.com/cdn-cgi/trace 输出(将 www.example.com 替换为您实际的域名和主机名)。
如果发现访问您的网站时显示空白页,请确认问题是否在暂停 Cloudflare 时发生,并联系您的主机提供商寻求帮助。

Error 502 bad gateway 或 Error 504 gateway timeout

当 Cloudflare 无法与您的源站 Web 服务器建立联系时,会发生 HTTP 502 或 504 错误。

可能的原因有两种:

502/504 源自您的源站 Web 服务器

当您的源站 Web 服务器标准的 HTTP 502 网关损坏或 504 网关超时错误响应时,Cloudflare 将返回带有 Cloudflare 标志的 HTTTP 502 或 504 错误:

image1.png

解决方案

联系您的主机提供商,在您的源站 Web 服务器上排查这些常见的原因:

  • 确保在请求生成 生成 502 或 504 错误的访问者 URL 中的主机名和域名时,源站服务器能够响应请求。
  • 调查服务器过载、崩溃或网络故障。
  • 识别发生超时或被阻止的应用程序或服务。

502/504 源自 Cloudflare

源自 Cloudflare 的 502 或 504 错误如下方所示:

image5.png


如果错误未提及“cloudflare”,请联系主机提供商来寻求与源自源站的 502/504 错误相关的帮助。

解决方案

为避免处理您的查询时发生延迟,请向 Cloudflare 支持提供以下必要详情:

  1. 发生问题的时间和时区
  2. 造成 HTTP 502 或 504 错误的 URL(例如:https://www.example.com/images/icons/image1.png
  3. 浏览 www.example.com/cdn-cgi/trace 时的输出(将 www.example.com 替换为导致 HTTP 502 或 504 错误的域名和主机名)

Error 503: service temporarily unavailable

HTTP 错误 503 在源站 Web 服务器过载时发生。可能的原因有两种,可通过错误消息来辨别:

  • 错误的 HTML 响应正文中不包含“cloudflare”或“cloudflare-nginx”。

解决方案:联系您的主机提供商,以核实是否针对您的源站 Web 服务器的请求实施了速率限制。

  • 错误的 HTML 响应正文中包含“cloudflare”或“cloudflare-nginx”。

解决方案:Cloudflare 数据中心中发生了连接问题。向 Cloudflare 支持提供以下信息:

  1. 您的域名
  2. 发生 503 错误的时间和时区
  3. 观察到 503 错误的浏览器的 www.example.com/cdn-cgi/trace 输出(将 www.example.com 替换为您实际的域名和主机名)。

Error 520: web server returns an unknown error

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

解决方案

在进一步调查 520 错误期间采用以下快速解决办法:将 Cloudflare DNS 中的 DNS 记录设为灰色云,或暂停 Cloudflare

联系您的主机提供商或站点管理员,请他们核查您的源站 Web 服务器日志中的崩溃并检查以下常见原因:

  • 源站 Web 服务器应用程序崩溃
  • 您的源站上未将 Cloudflare IP 列入白名单。
  • 源站 Web 服务器 TCP 空闲超时短于 300 秒
  • 标头超过 8 KB(通常因为 Cookie 数量过多)
  • 源站 Web 服务器的空响应中缺少 HTTP 状态代码或响应正文
  • 缺少响应标头或源站 Web 服务器未返回正确的 HTTP 错误响应
520 错误普遍发生于造成源站 Web 服务器崩溃的 PHP 应用程序。


如果在联系主机商或站点管理员后仍然出现 520 错误,请向 Cloudflare 支持提供以下信息:

  • 发生错误时所请求资源的完整 URL
  • 520 错误消息中的 Cloudflare Ray ID
  • www.example.com/cdn-cgi/trace 的输出(将 www.example.com 替换为您遇到 520 错误的域名和主机名)。
  • 两个 HAR 文件

Error 521: web server is down

源站 Web 服务器拒绝来自 Cloudflare 的连接时,会发生 521 错误。源站上的安全解决方案可能阻止了来自某些 Cloudflare IP 地址的合法连接。

521 错误的两个最常见原因:

  • 源站 Web 服务器应用程序离线
  • Cloudflare 请求被阻止

解决方案

联系您的站点管理员或主机提供商以排除这些常见原因:

  • 确保您的源站 Web 服务器正常响应
  • 查看源站 Web 服务器错误日志,以确定 Web 服务器应用程序崩溃或中断。
  • 确认没有阻止 Cloudflare IP 地址或对其施加速率限制
  • 在您的源站 Web 服务器的防火墙或安全软件中,将所有 Cloudflare IP 地址 列入白名单

Error 522: connection timed out

Cloudflare 联系源站 Web 服务器时超时会发生 522 错误。有两种不同的错误导致 HTTP 错误 522,具体取决于 Cloudflare 和源站 Web 服务器之间发生超时的时间:

  1. 在连接建立之前,源站 Web 服务器未在 Cloudflare 发送 SYN 后 15 秒内将 SYN + ACK 返回给 Cloudflare。
  2. 在连接建立之后,源站 Web 服务器未在 90 秒内确认(ACK)Cloudflare 的资源请求。
如果源站 Web 服务器在连接建立之后确认(ACK)了资源请求,但没有及时发送响应,则发生 HTTP 524 错误

解决方案

联系您的主机提供商,从源站 Web 服务器上排查下列常见原因:

  • (最常见).htaccess、iptables 或防火墙中阻止了 Cloudflare IP 地址或对其设置了速率限制。确认您的主机提供商已将 Cloudflare IP 地址列入白名单。
  • 源站 Web 服务器过载或离线,因而丢弃了传入的请求。
  • 源站 Web 服务器上禁用了 Keepalives 功能。
  • Cloudflare DNS 应用中的源站 IP 地址与主机提供商当前为您的源站 Web 服务器置备的 IP 地址不匹配。
  • 您的源站 Web 服务器上丢弃了数据包。

如果上述原因都未能促成解决方案,请向主机提供商或站点管理员索取以下信息,然后联系 Cloudflare 支持

  • 从源站 Web 服务器到发生问题前最常连接您的源站 Web 服务器的 Cloudflare IP 地址MTR 或 traceroute 结果。在源站 Web 服务器日志记录的 IP 中,找到一个可成功连接的 IP。
  • 来自主机提供商调查的详细信息,如相关的日志或与主机提供商的对话。

Error 523: origin is unreachable

当 Cloudflare 无法联系您的源站 Web 服务器时,会发生 523 错误。这通常在 Cloudflare 和源站 Web 服务器之间的网络设备没有通向源站 IP 地址的路由时发生。

解决方案
联系您的主机提供商,在您的源站 Web 服务器上排查下列常见原因:

  • 确认您的 Cloudflare DNS 应用中为 A 或 AAAA 记录列出了正确的源站 IP 地址。
  • 对源站与 Cloudflare 之间的互联网路由问题进行故障排除,或者对源站本身的问题进行故障排除。
如果主机提供商经常更改该您的源站 Web 服务器 IP 地址,请参考有关动态 DNS 更新的 Cloudflare 文档。

如果上述原因都未能促成解决方案,请向主机提供商或站点管理员索取以下信息:

  • 从源站 Web 服务器到发生问题前最常连接您的源站 Web 服务器的 Cloudflare IP 地址MTR 或 traceroute 结果。从源站 Web 服务器日志查找一个可连接的 Cloudflare IP。
  • 如果您通过 Cloudflare 托管服务合作伙伴使用 Railgun,请联系您的主机提供商来排查 523 错误。
  • 如果您自己管理 Railgun 安装,请先 Cloudflare 支持提供以下信息:
    • 从 Railgun 服务器到源站 Web 服务器的 traceroute 结果。
    • 来自 Railgun 服务器的最新系统日志文件。

Error 524: a timeout occurred

524 错误表明 Cloudflare 成功连接了源服务器,但源站 Web 服务器没有在默认的 100 秒连接超时结束前提供 HTTP 响应。

Enterprise 客户可以将 524 超时延长到最长 600 秒。

解决方案
联系您的主机提供商,从您的源站 Web 服务器上排查下列常见原因:

  • 源站 Web 服务器上长时间运行的进程。
  • 发生过载的源站 Web 服务器。
源站 Web 服务器上记录请求响应时间有助于辨别资源速度缓慢的原因。联系您的主机提供商或站点管理员,以协助调整日志格式,或者搜索适用于您的 Web 服务器品牌(如 ApacheNginx)的日志文档。

如果您经常运行需要超过 100 秒才能完成的 HTTP 请求(例如大量数据导出),请在 Cloudflare DNS 应用中将这些进程移动到未由 Cloudflare 代理的子域后面。

如果使用 Cloudflare Railgun 的域发生错误 524,请确保 lan.timeout 设置的值高于默认的 30 秒,再重启 railgun 服务。

Error 525:SSL handshake failed

525 错误通常由源站 Web 服务器中的配置问题引起。满足以下两个条件时会发生 525 错误:

  1. Cloudflare 与源站 Web 服务器之间的 SSL 握手失败;
  2. Cloudflare SSL/TLS 应用中设置了 Full  Full (Strict) SSL

解决方案

联系您的主机提供商,从您的源站 Web 服务器上排查下列常见原因:

  • 未安装有效的 SSL 证书
  • 未开启 443 端口(或其他自定义安全端口)
  • SNI 支持
  • Cloudflare 接受的加密套件与源站 Web 服务器支持的加密套件不匹配。
如果间歇性发生 525 错误,请查看源站 Web 服务器错误日志来确定原因。配置 Apache 以记录 mod_ssl 错误。此外,nginx 的标准错误日志中包含 SSL 错误,但可能需要提高日志级别

Error 526: invalid SSL certificate

满足以下两个条件时会发生 526 错误:

  1. Cloudflare 无法验证您的源站 Web 服务器上的 SSL 证书;
  2. Cloudflare SSL/TLS 应用中设置了 Full SSL (Strict) SSL

解决方案

如需潜在的快速修复,请在 Cloudflare SSL/TLS 应用中将域的 SSL 设为 Full 而非 Full (strict)

请您服务器管理员或主机提供商核查源站 Web 服务器的 SSL 证书,并进行以下验证:

image1.png

如果源站服务器使用自签名证书,请将域配置为使用 Full SSL 而非 Full SSL (Strict)。请参考适用于您的源站的 SSL 推荐设置


527 Error:Railgun Listener to origin error

527 错误表示 Cloudflare 和源站的 Railgun 服务器(rg-listener)之间发生连接中断。常见的原因包括:

  • 防火墙干扰
  • Railgun 服务器和 Cloudflare 之间网络故障或数据包丢失
如需其他详细信息来协助故障排除,请提高 Railgun 日志级别

527 错误的最常见原因包括:

如果要联系 Cloudflare 支持,请提供以下来自 Railgun Listener 的信息:

  • railgun.conf 文件的完整内容
  • railgun-nat.conf 文件的完整内容
  • 详述观察到的错误的 Railgun 日志文件

连接超时

下列 Railgun 日志错误表明 Railgun Listener 和源站 Web 服务器之间存在连接故障:

connection failed 0.0.0.0:443/example.com: dial tcp 0.0.0.0:443: i/o timeoutno response from origin (timeout) 0.0.0.0:80/example.com

解决方案

联系您的主机提供商,以协助测试源站 Web 服务器和 Railgun Listener 之间的连接问题。例如,运行 netcat 命令可以测试从 Railgun Listener 到源站 Web 服务器的 SERVERIPPORT(80 用于 HTTP,或 443 用于 HTTPS)的连接:

nc -vz SERVERIP PORT

超过 LAN 超时

如果源站 Web 服务器未在 30 秒默认超时内向 Railgun Listener 发送 HTTP 响应,则生成以下 Railgun Listener 日志错误:

  connection failed 0.0.0.0:443/example.com: dial tcp 0.0.0.0:443: i/o timeout

可以通过 railgun.conf 文件的 lan.timeout 参数调整这一时间。

解决方案

提高 railgun.conf 中的 lan.timeout 限值,或检查 Web 服务器配置。联系您的主机提供商,以确认源站 Web 服务器是否过载。

连接遭拒

当来自 Railgun Listener 的请求遭到拒绝时,Railgun 日志中会出现以下错误:

Error getting page: dial tcp 0.0.0.0:80:connection refused

解决方案

将 Railgun Listener 的 IP 列在源站 Web 服务器防火墙的白名单中。

TLS/SSL 相关错误

如果 TLS 连接失败,Railgun 日志中会出现以下错误:

connection failed 0.0.0.0:443/example.com: remote error: handshake failureconnection failed 0.0.0.0:443/example.com: dial tcp 0.0.0.0:443:connection refusedconnection failed 127.0.0.1:443/www.example.com: x509: certificate is valid forexample.com, not www.example.com

解决方案

如果发生 TLS/SSL 错误,请在源站 Web 服务器上检查并确保:

  • 已开启 443 端口
  • 源站 Web 服务器出示了 SSL 证书
  • 源站 Web 服务器的 SSL 证书的 SAN 或 Common Name 中包含请求的主机名
  • Cloudflare SSL/TLS 应用中的 SSL 设为 Full 或 Full (Strict)
如果源站 Web 服务器 SSL 证书采用自签名,请railgun.conf 中设置 validate.cert=0

Error 530

返回 HTTP 错误 530 时会同时显示 1XXX 错误。在 Cloudflare 帮助中心中搜索具体的 1XXX 错误,以了解故障排除信息。


相关资源

 

Not finding what you need?

95% of questions can be answered using the search tool. This is the quickest way to get a response.

由 Zendesk 提供技术支持