跳转到内容
搜索文档

Network Error Logging

最后更新 查看 MarkdownAgent 设置

Network Error Logging (NEL) 是一种基于浏览器的报告系统,允许用户将其自身的连接失败情况报告给外部端点。你可以使用 Network Error Logging 来深入了解互联网上的连通性问题,以获知事件发生的地点和时间、影响范围以及受影响的方式。

最后一公里 (The last mile)

最后一公里是指从用户到资源的第一层入站连接点(无论该点是 Cloudflare 这样的网络还是直接发往源站服务器)的路径。最后一公里至关重要,因为它处于资源请求的关键路径上:如果最后一公里出现问题,用户将无法连接到其资源。当启用 Network Error Logging 时,你可以接收到有关最后一公里问题(通常难以察觉)的警报,从而了解问题所在并加以解决。

最后一公里示意图,展示向客户交付数据所涉及的步骤

NEL 如何影响请求

在所有启用了 NEL 的 Cloudflare Zone 请求中,都包含 Report-To 标头:

report-to: {"group":"cf-nel","max_age":31536000,"endpoints":[{"url":"`[`https://a.nel.cloudflare.com/report?lkg-colo=lhr&lkg-time=1600338181`](https://gcp.nel.cloudflare.com/report?lkg-colo=lhr&lkg-time=1600338181&lkg-ip=1.1.1.1)`"}]}

示例 Network Error Report Effective Payload 显示如下:

{
  "age": 20,
  "type": "network-error",
  "url": "https://example.com/previous-page",
  "body": {
    "elapsed_time": 18,
    "method": "POST",
    "phase": "dns",
    "protocol": "http/1.1",
    "referrer": "https://example.com/previous-page",
    "sampling_fraction": 1,
    "server_ip": "",
    "status_code": 0,
    "type": "dns.name_not_resolved",
    "url": "https://example-host.com/"
  }
}

隐私保护 (Privacy)

Cloudflare 使用地理位置查找从 NEL 报告中的每个客户端 IP 中提取以下信息:

  • 客户端 ASN
  • 客户端国家
  • 客户端都会区

Cloudflare 使用内部查找将上述数据与客户域名及客户账户相关联。

Cloudflare 不存储任何 PII(个人身份信息)或特定于用户的数据,且任何 IP 数据仅在处理请求的持续时间内保留。在报告通过 NEL 流水线处理后,所有 PII 数据都会从系统中清除。

客户端 IP 地址仅在向 Cloudflare NEL 端点发送请求的生命周期内(毫秒级)存储在易失性内存中,并在请求完成后立即丢弃。Cloudflare 在 Network Error Logging 流水线的任何位置都不会记录客户端 IP 地址。

NEL 报告包含有关终端用户网络状况的信息,这些信息可能被视为敏感信息。Cloudflare 非常重视隐私,并实施了以下保护措施:

  • 报告被发送到 Cloudflare 的基础设施,不会与第三方共享。
  • 报告不包含个人身份信息 (PII)。
  • 客户可以使用以下方法之一选择退出让其终端用户消耗 NEL 标头:
    1. 自助服务 (Zone 设置) — 使用仪表板开关或 API (PATCH /zones/{zone_id}/settings/nel) 禁用你 Zone 的 NEL。任何 Zone 管理员均可随时重新启用。
    2. 通过支持团队永久退出 — 联系 Cloudflare 支持团队在产品级别禁用 nel___enable 功能标志。这完全阻止在你的 Zone 上启用 NEL,且不能被 Zone 管理员撤销。 对于 Free 和 Pro 计划,仪表板开关通常已足够。具有严格隐私要求的 Enterprise 客户可能更喜欢支持团队级别的永久退出。

这篇文档对您有帮助吗?