Cloudflare 5XX 错误故障排除

最近使用cloudflare做网站的外围cdn,出现过很多次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 可更改本文探讨的默认错误页面的外观。


错误分析

每个域的错误分析可在您的帐户的支持门户中获得。通过错误分析,您可以按 HTTP 错误代码深入了解总体错误情况,它还提供了诊断和解决问题所需的 URL、响应、源站 IP 地址和 Cloudflare 数据中心。错误分析基于的是 1% 的流量样本。

要查看错误分析:


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 错误:

解决方案

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

502/504 源自 Cloudflare

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

如果错误未提及“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 服务器过载时发生。 可能的原因有两种,可通过错误消息来辨别:

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

解决方案: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 服务器日志中的崩溃并检查以下常见原因:

520 错误普遍发生于造成源站 Web 服务器崩溃的 PHP 应用程序。

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


Error 521: web server is down

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

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

解决方案

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


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 服务器上排查下列常见原因:

如果您使用的是 Cloudflare Pages,请确认您已经设置了自定义域,并且您的 CNAME 记录指向您的自定义 Pages 域。如需了解如何设置自定义 Pages 域,请点击此处。

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


Error 523: origin is unreachable

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

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

如果主机提供商经常更改该您的源站 Web 服务器 IP 地址,请参考有关动态 DNS 更新的 Cloudflare 文档。

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


Error 524: a timeout occurred

524 错误表明 Cloudflare 成功连接了源服务器,但源站 Web 服务器没有在默认的 100 秒连接超时结束前提供 HTTP 响应。如果源站服务器由于要做太多工作而花费太长时间(例如,大数据查询),或者因为服务器在争抢资源而无法及时返回任何数据,那么可能会发生这种情况。

解决方案

以下是我们建议的解决这一问题的方案:

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


错误 525:SSL 握手失败

525 错误表示 Cloudflare 与源站 Web 服务器之间的 SSL 握手失败。满足以下两个条件时会发生 525 错误:

  1. Cloudflare 与源站 Web 服务器之间的 SSL 握手失败,以及
  2. Cloudflare SSL/TLS 应用的概述选项卡中设置了 FullFull (Strict) SSL

解决方案

联系您的主机提供商,从您的源站 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 证书,并进行以下验证:

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


527 错误:Railgun Listener 至源站错误

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

如需其他详细信息来协助故障排除,请提高 Railgun 日志级别。

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

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

连接超时

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

connection failed 0.0.0.0:443/example.com:dial tcp 0.0.0.0:443: i/o timeout
no 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 failure
connection failed 0.0.0.0:443/example.com:dial tcp 0.0.0.0:443:connection refused
connection failed 127.0.0.1:443/www.example.com:x509: certificate is valid for
example.com,www.example.com

解决方案

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

如果源站 Web 服务器 SSL 证书采用自签名,请在 railgun.conf 中设置 validate.cert=0


Error 530

返回 HTTP 错误 530 时会同时显示 1XXX 错误。后续我会总结,以了解故障排除信息。

展开阅读全文

页面更新:2024-04-27

标签:错误   提供商   证书   解决方案   主机   原因   发生   地址   服务器   日志

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top