在您设置好包含通知电子邮件的独立 Health Check 后,请使用 Health Check 分析来调试可能存在的源站问题。
要访问 Health Check 分析:
-
在 Cloudflare 仪表板中,前往 Health Check Analytics(健康检查分析) 页面。
Go to Health Check Analytics ↗
您可以评估源站在线时间、延迟、失败原因和特定事件日志:
- Health Checks By Uptime(按在线时间划分的健康检查):显示各个源站在一段时间内的在线时间百分比。
- Health Checks By Failure Reason(按失败原因划分的健康检查):显示按具体原因划分的故障细分。请参阅下文中的常见错误代码原因和解决方案。
- Health Checks By Latency(按延迟划分的健康检查):显示各个源站在一段时间内的平均延迟(以往返时间衡量)。
- Event Log(事件日志):显示单个健康检查数据。
- 选择每条记录以获取有关 Round trip time(往返时间)、Failure reason(失败原因)、Average waterfall(平均瀑布图)(显示有关请求阶段按时间顺序排列的数据)、**Response status code(响应状态码)**等的更多详细信息。
- 请注意,Global(全球) 不是配置的区域;它代表来自所有已启用区域的汇总数据。
健康检查未能与您的源站服务器建立 TCP 连接。
这通常在 Cloudflare 与您的源站之间发生网络故障,和/或防火墙拒绝允许我们的连接时发生。请确保您的网络和防火墙配置不会干扰流量。
源站未能配置的超时内返回 HTTP 响应。如果您将超时设置为较小的值(例如一到两秒),就会发生这种情况。
Cloudflare 建议增加 HTTP 响应超时以允许源站服务器做出响应。
Cloudflare 收到的 HTTP 状态码与您的健康检查配置中 expected_codes 属性定义的值不匹配。
响应代码必须与 expected_codes 匹配。通过将预期的响应代码与事件日志中收到的状态码进行比较,确认这些值是否正确。
如果您将健康检查配置为使用 HTTP 连接,而您的源站服务器正在重定向到 HTTPS,您也可能会看到此问题。在这种情况下,响应代码通常是 301、302 或 303。
将您的 Cloudflare 健康检查配置更改为使用 HTTPS 或将 follow_redirect 的值设置为 true,以便 Cloudflare 可以解析正确的状态码。
从您的源站服务器返回的响应体不包含您的健康检查中配置的 expected_body 值(不区分大小写)。
确保 expected_body 位于响应体的前 10 KB 中。
该证书不受公共证书颁发机构 (CA) 的信任。
如果您使用的是自签名证书,Cloudflare 建议使用公开受信任的证书,或者将健康检查上的 allow_insecure 属性设置为 true。
我们的健康检查(客户端)无法将服务器证书上的名称与请求的主机名相匹配。
检查您的健康检查配置,以确认在 Cloudflare 健康检查中设置的 header 值是否正确。
如果您使用的是较旧版本的 TLS,或者您的源站服务器未配置为 HTTPS,则可能会发生此错误。
确保您的源站服务器支持 TLS 1.2 或更高版本,并且已配置为 HTTPS。
服务器未识别客户端提供的名称。设置主机标头时,这将在初始 TLS 握手中被设置为 ServerName。如果未设置,Cloudflare 将不提供 ServerName,这可能会导致此错误。
在您的健康检查对象中设置主机标头。
从 Cloudflare 的网络无法到达该 IP 地址。常见原因包括 ISP 或托管服务商的网络问题(例如 BGP 层面),或者该 IP 不存在。
确保 IP 准确,并检查是否存在 ISP 或托管服务商网络问题。
数据传输未被确认,且数据重传未成功。
确认握手的 SYN-ACK 是否在您的源站进行,并联系 Cloudflare 支持。
由于网络不可用,Cloudflare 无法连接到源站 Web 服务器。这通常是由网络问题或不正确的源站 IP 引起的。
检查 Cloudflare 的健康检查配置中为源站输入的 IP,或者为源站主机名通过 DNS 返回的 IP。
通常由 HTTP 502 错误或错误网关引起。
确保源站 Web 服务器对请求做出响应,且没有应用程序崩溃或处于高负载状态。
源站 Web 服务器的主机名不存在。
确认源站 Web 服务器的主机名能够解析为 IP 地址。
客户端从源站 Web 服务器接收数据时发生网络错误。
确认源站 Web 服务器是否正经历高流量或发生错误。
健康检查中存在配置错误,未对源站运行任何检查。
检查您的健康检查配置,以确保它与发送到您源站的预期请求匹配。
源站 Web 服务器的主机名解析为非公共路由或受限的 IP 地址(例如 localhost 地址)。未对该源站运行任何检查。
确认源站 Web 服务器的主机名解析为公共路由的 IP 地址。请注意,如果主机名解析为 Cloudflare 公共任播(anycast)IP(因为主机名通过 Cloudflare 代理),健康检查仍将运行,但会探测 Cloudflare 的边缘,而不是您实际的源站服务器。若要直接监控您的源站服务器,请将健康检查配置为使用源站 IP 地址或未代理的主机名。
如果故障无法归类为上述任何其他类型的故障。
联系 Cloudflare 支持。
您可以配置警报,以便在您的 Health Check 状态发生任何更改时通知您。
Health Checks status notification
Who is it for?Customers who want to be warned about changes to server health as determined by health checks.
Other options / filtersAvailable filters include:
- You can search for and add health checks from your list of health checks.
- You can choose a trigger to fire the notification when your server becomes unhealthy, healthy, or either healthy or unhealthy.
Professional plans or higher.
What should you do if you receive one?Review your health check analytics.
有关如何设置警报的更多信息,请参阅 Cloudflare Notifications。