跳转到内容
搜索文档

常见错误代码

最后更新 查看 MarkdownAgent 设置

Cloudflare Load Balancing API 为每个池和端点添加全局健康状态。它还让您了解我们的网络在更广泛的层面上看到的情况。Cloudflare 使用法定人数(quorum)系统确定池和端点健康状态。法定人数来自负责在区域运行健康监视器请求的 PoP,并使用多数结果。

排查故障时,使用 Cloudflare API 以编程方式访问 Cloudflare Load Balancing。Health Monitor Events 和 Load Balancer Monitors 路由是访问负载均衡事件日志和重新配置 Cloudflare 监视器的绝佳工具。

您可以从 Cloudflare API 的 List Health Monitor Events 命令获取端点健康的按数据中心细分:

GET user/load_balancing_analytics/events

如果健康监视器请求失败,细分将包含原因。

常见故障原因和解决方案如下所列。


TCP 连接失败

原因

我们的健康监视器请求未能与端点建立 TCP 连接。

解决方案

这通常发生在 Cloudflare 与端点之间存在网络故障,和/或防火墙拒绝允许我们的连接时。确保您的网络和防火墙配置不会干扰负载均衡流量。


发生 HTTP 超时

原因

端点未在配置的超时时间内返回 HTTP 响应。如果超时设置较低——例如 1 或 2 秒——就会发生这种情况。

解决方案

我们建议增加 HTTP 响应超时以允许端点响应。


响应代码不匹配错误

原因

Cloudflare 收到的 HTTP 状态码与 Cloudflare 监视器配置的 expected_codes 属性中定义的值不匹配。

解决方案

响应代码必须与 expected_codes 匹配。使用 List Monitors API 命令确认值正确。

其他原因

如果监视器配置为使用 HTTP 连接而端点重定向到 HTTPS,您也可能看到此问题。在此情况下,响应代码通常为 301、302 或 303。

解决方案

要么将 Cloudflare 监视器配置更改为使用 HTTPS,要么将 follow_redirect 的值设置为 true,以便我们可以解析正确的状态码。


响应正文不匹配错误

原因

从端点返回的响应体不包含监视器中配置的 expected_body 的(不区分大小写)值。

请注意,我们仅读取响应的前 10 KB。如果您返回更大的响应,且 expected_body 不在前 10 KB 中,健康监视器请求将失败。

解决方案

确保 expected_body 在响应体的前 10 KB 内。


TLS 不受信任的证书错误

原因

证书不受公共证书颁发机构(CA)信任。

解决方案

如果您使用自签名证书,我们建议要么使用公开信任的证书,要么将监视器上的 allow_insecure 属性设置为 true


TLS 名称不匹配错误

原因

我们的健康监视器(客户端)无法将服务器证书上的名称与请求的主机名匹配。

解决方案

使用 List Monitors 命令确认 Cloudflare 监视器中设置的 header 值正确,并使用 Update Monitors 命令进行任何必要的更改。


TLS 协议错误

原因

如果您使用较旧版本的 TLS 或端点未配置 HTTPS,可能会发生此错误。

解决方案

确保端点支持 TLS 1.0 或更高版本并配置为 HTTPS。


TLS 无法识别的名称错误

原因

服务器无法识别客户端提供的名称。设置 host header 时,我们在初始 TLS 握手中将其设置为 ServerName。如果未设置,我们不会提供 ServerName,这可能导致此错误。

解决方案

在监视器对象中设置 host header。


无路由到主机错误

原因

无法从我们的网络到达 IP 地址。常见原因是 ISP 或托管提供商网络问题(例如 BGP 级别),或 IP 不存在。

解决方案

确保 IP 准确,如果是,检查是否存在 ISP 或托管提供商网络问题。


超出配额错误

原因

如果您尝试创建超出套餐包含数量的对象(监视器、池或端点),您将收到此错误。

如果使用仪表板,您将无法创建其他对象。

如果您使用 Cloudflare API,您将收到错误消息。

解决方案

  • 需要创建更多对象(负载均衡器、池、端点或监视器)的 Enterprise 客户应联系账户团队讨论此问题。
  • 自助服务客户可以升级 Load Balancing 订阅以获得更多端点,从而增加负载均衡容量。

TCP Timeout(TCP 超时)

原因

数据传输未得到确认,数据重传未成功。

解决方案

确认 SYN-ACK 握手是否在端点发生,并联系 Cloudflare 支持


TLS Handshake Failure(TLS 握手失败)

原因

表示浏览器与 Web 服务器的连接不安全。

解决方案

更换 wifi 网络、连接到有线网络,或验证网络连接稳定。


Network Unreachable(网络不可达)

原因

由于网络不可用,Cloudflare 无法连接到端点。这通常由网络问题或错误的 IP 引起。

解决方案

检查 Cloudflare 负载均衡器配置中为端点输入的 IP,或通过 DNS 为端点主机名返回的 IP。


HTTP Invalid Response(HTTP 无效响应)

原因

通常由 HTTP 502 错误或 bad gateway 引起。

解决方案

确保端点响应请求,且没有应用崩溃或处于高负载。


DNS Unknown Host(DNS 未知主机)

原因

端点主机名不存在。

解决方案

确认端点解析到 IP 地址。


Connection Reset by Peer(对等方重置连接)

原因

客户端从端点接收数据时发生网络错误。

解决方案

确认端点是否经历高流量或错误。


Monitor Config Error(监视器配置错误)

原因

监视器中存在配置错误,未对池端点运行检查。

解决方案

查看监视器配置,确保它与对端点的预期请求匹配。


DNS Internal(DNS 内部错误)

原因

端点的主机名解析为内部或橙云代理的 IP 地址。未对池端点运行检查。

解决方案

Cloudflare 不允许使用由 Cloudflare 代理的端点主机名。


Load Balancing Not Enabled(未启用负载均衡)

原因

您的账户或 zone 未启用 Load Balancing。

解决方案

Enterprise 客户请联系 Cloudflare 账户团队。Free、Pro 和 Business 客户应启用 Load Balancing


验证失败错误

原因

如果您在配置负载均衡器端点时尝试设置 host header 值,您将收到错误。

解决方案

Cloudflare 现在将配置的端点 host header 限制为与账户关联 zone 的直接子域的完全限定域名(FQDN)。例如,此 host header 将与负载均衡器本身相同的 zone,但池可在多个负载均衡器中使用。


对象被其他对象引用

原因

当您尝试删除负载均衡器地理导向 区域引用的池时,您将收到此错误。

解决方案

从负载均衡器的地理导向配置中移除池。如果您的负载均衡器不再使用地理导向,您需要重新启用地理导向,然后移除池。


Other Failure(其他失败)

原因

如果故障无法分类为上述任何其他类型的故障。

解决方案

联系 Cloudflare 支持

这篇文档对您有帮助吗?