中文网字计划

打造极速体验:字图 CDN 部署架构全解析

在当今互联网时代,内容分发网络(CDN)已经成为提升网站性能和用户体验的关键技术。字图 CDN(字体内容分发网络)作为中文网字计划构建的免费字体 CDN,每月需要提供近 150GB 的带宽,但仍然是一项免费的服务。本文将详细介绍字图 CDN 的部署架构,帮助您更好地理解和复制我们的技术。

什么是字图 CDN,它需要解决什么问题?

字图 CDN 并非传统的 CDN,它是一个管理大量 CDN 集群的解决方案,其表现与常规 CDN 无异。

  1. 全球分布:通过在全球范围内分布的服务器节点缓存和分发文字和图片内容,减少用户访问延迟,提高网站加载速度,从而提升用户体验。
  2. 网关控制:通过网关服务器提供请求转发、负载均衡、安全认证等高级功能。
  3. 源站控制:通过源站服务器控制内容分发,强力控制缓存策略。

字图 CDN 的部署架构

字图 CDN 的部署架构主要包括以下几个部分:

边缘计算网关

边缘计算网关在字图 CDN 中扮演着至关重要的角色,提供了高可用、高性能的请求转发、负载均衡和安全认证功能。我们选择了 Deno Deploy 作为平台,它不仅提供了卓越的性能和免费额度,还简化了部署流程,只需在网站中写几行代码,点击一下即可完成部署,几分钟内即可完成版本更换和修复。

用户通过 URL 首先进入的是我们的边缘计算网关,网关根据各种策略将用户分配到一个指定的子 CDN 上。

请求转发

用户访问 CDN 的链接始终保持一致,避免用户感知到子 CDN 的存在,从而减少因 CDN 故障导致的用户体验问题。当一个子 CDN 出现故障时,我们可以迅速在代码中移除它,并在几分钟内完成部署。这种设计不仅提高了系统的鲁棒性,还确保了用户体验的连续性。

负载均衡

我们采用了先进的负载均衡算法,根据请求的 IP 来源,将请求分发到不同的 CDN 节点,从而提高 CDN 缓存率和利用率。通过负载算法的调整,我们可以提供丰富的策略来调整子 CDN 流量分配和流量限制等功能。例如,可以根据地理位置、网络状况和服务器负载等因素动态调整流量分配,以实现最优的资源利用和用户体验。

安全认证

为了防止恶意用户的攻击和滥用,我们在边缘计算网关中集成了多层次的安全认证机制。对于一些不友好的用户,我们可以通过来源限制其使用,返回错误的响应,避免其访问我们的子 CDN。未来,我们还可以通过派发 token 来控制用户的使用额度,进一步增强系统的安全性和可控性。

CDN 服务提供商(各个子 CDN)

CDN 服务提供商是字图 CDN 的核心功能部件。由于每个 CDN 服务提供商的功能随时可能下线且不稳定,我们需要使用多个 CDN 服务提供商,以降低单个 CDN 故障带来的影响。目前我们使用的 CDN 服务提供商是 ImageKit,它提供了全面的 CDN 服务,并支持直接设置源站,部署新 CDN 只需几分钟,扩容方便。

CDN 服务提供商与边缘计算网关结合,就可以实现动态的 CDN 负载均衡和流量控制,非常的便利。

源站服务器

源站服务器存储原始字体内容。当用户请求内容时,子 CDN 会从源站服务器获取内容并缓存到本地,以便后续请求可以直接从缓存中获取,减少源站服务器的负载。中文网字计划的源站服务器部署在 Netlify 上,它从 chinese-free-web-font-storage 自动 CICD 构建而来,Netlify 提供了 1TB 的每月额度,几乎用不完。

总结

字图 CDN 的部署架构通过源站服务器、CDN节点、DNS解析、缓存策略和安全性等多个环节的协同工作,实现了文字和图片内容的高效分发。通过合理部署字图 CDN,企业和开发者可以显著提升网站性能和用户体验,增强内容的可用性和安全性。