从不同地理位置监控CDN

从不同地理位置监控CDN

最近,我们的 CDN 服务出现了问题:其中一个边缘位置缓存了不完整版本的 JavaScript 文件,导致来自阿拉伯联合酋长国(可能还有其他一些附近国家)的客户无法使用我们的服务。此问题现已解决,但我们意识到监控我们的 CDN 网络可能是一个好主意。

我们需要监控:

  1. 资源可用。
  2. 它们具有正确的内容类型、内容编码(gzip)、过期时间和一些其他标头
  3. 它们在所有地理位置上都有相同的尺寸。
  4. 资源经常会更改名称(我们在使用新版本更新时会更改文件名后缀),因此我们需要能够在部署期间快速更改受监控的资源 URL,并且在最好的情况下自动更改。

由于我们的 CDN 提供商在不同位置拥有大量服务器,因此我们也需要从许多不同位置跟踪此情况。我见过许多可以从许多位置跟踪网站的服务,但它们似乎都专注于衡量可用性和速度,而对于这个问题,我们更关注一致性。

因此,我相信我们有以下选择:

  1. 寻找一个可以满足要求的托管监控服务。有人知道吗?
  2. 使用一些代理服务器列表/网络编写监控脚本。是否有任何可靠的列表/服务可用于此?
  3. 使用 tor 出口节点规范编写脚本来从不同位置跟踪我们的资源。
  4. 使用其他具有此功能的 CDN,并确保所有位置上的资源副本都是一致的。但我们仍然希望有一些第三方监控。

有什么更好的方法吗?你能建议其他方法来解决我们的问题吗?

谢谢。

答案1

抱歉,但这几乎是不可能的。

最好的方法是从 CDN 提供商那里获取所有边缘服务器的 IP 地址列表,然后编写一些脚本来测试边缘位置上的副本。但是,我 99% 肯定你找不到一个能为你提供所有边缘位置详细信息的 CDN 提供商——CDN 行业竞争非常激烈。

除上述已知 IP 列表外,使用 CDN 时,您不能依赖 DYI 监控,或由 Gomez、Pingdom 或任何其他 HTTP 监控服务进行的 HTTP 监控。CDN 在许多城市都有边缘位置,并使用某种“智能”流量路由:

  • 地理感知 DNS,即查找解析 DNS 缓存IP地址,并提供一个与DNS解析器附近的CDN POP对应的IP。
  • 边界网关协议任播路由

因此,您的监控客户端将被定向到“最近”的 CDN POP,并且无法监控其他 CDN POP。您必须在很多地方运行监控代理,才能确定您覆盖了所有 CDN POP。

所有优秀的 CDN 都会对自己的网络进行广泛的监控,因此您真的没有必要自己重复这一过程。相反,我建议您考虑:

  • 要切换到更好的 CDN 提供商吗?

  • 强制 CDN POP 更频繁地清除缓存版本。优秀的 CDN 可以独立于 HTTP Expires 和 Cache-Control 标头的内容来管理其边缘上的缓存 TTL。这样,如果文件不完整,它将更快地被清除。

答案2

1) 查看 pingdom.com 和 websitepulse.com 的监控位置
2) 不可靠
3) 不可靠
4) 从未听说过

答案3

您是否与 CDN 提供商讨论过是否有可能的工具满足您的监控需求?CDN 可能会为您提供一个界面,以便专门为您的检查请求选择镜像站点或区域。我认为这是首选途径,因为其他所有方法都更像是一种黑客手段,而不是真正的解决方案。

有代理目录,但这些目录不可靠且经常更改,正如 3molo 所述。您可能会考虑在云服务(例如 AWS 或 Azure)上运行自己的代理作为监控代理,但这是否能反映“真实世界”检测并让您的请求由“正确”的服务器处理,实际上取决于您的 CDN 使用的地理位置算法。

依赖不可靠的点对点基础设施(如 tor)进行监控听起来是个坏主意,只有在没有其他选择的情况下才值得尝试。

相关内容