CDN 如何简化实时配置

262 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情

生存时间

什么是生存时间

生存时间 (TTL) 是指对象在删除或刷新之前存储在缓存系统中的时间。在CDN的上下文中,TTL通常是指内容缓存,这是在CDN代理上存储网站资源(例如,图像,价格,文本)的副本以提高页面加载速度并减少源服务器带宽消耗的过程。

在这种情况下,TTL控制这些副本的刷新率,理想情况下确保不会向网站访问者提供内容的“陈旧”版本。

陈旧内容和新鲜内容

设置 TTL 策略的最佳做法

TTL is set via HTTP headers, such as the Cache-Control header, and is measured in seconds. For example, the value  is a directive for a given resource to be refreshed every 30 seconds before time to live is exceeded. Conversely, the directive  indicates that the resource shouldn’t be cached at all."Cache-Control: max-age=30"``"max-age=0"

生存时间直接影响您网站的页面加载时间(即缓存数据加载速度更快)以及内容新鲜度(即缓存时间过长的数据可能会过时)。

为确保您的访问者只能看到您网站的最新版本,应根据以下条件设置 TTL:

资源类型

设置缓存 TTL 时,需要考虑两种资源类型:静态和动态。

静态文件(例如,图像文件、PDF 等)很少更新,因此通常具有较长的 TTL。例如,电子商务网站的产品图片池表示静态内容。由于它们很少刷新,因此可以安全地将它们缓存较长时间(例如,几天或几周)。这使得设置其TTL变得可预测且易于维护。

相反,动态内容(例如.HTML文件)不断更新,使准确TTL的设置复杂化。例如,产品下的评论部分被视为动态的,因为它经常更改。由于您无法完全控制此内容,并且无法预测其刷新时间,尤其是在用户可以选择修改现有帖子的情况下,因此不建议进行缓存。

资源使用

资源的缓存生存时间也应根据其使用频率进行调整。例如,电子商务网站可能会选择每天更新显示其产品价格的HTML文件。因此,应使用在一天结束时过期的 TTL 设置包含定价的页面,以确保客户只能看到最新的信息。

CDN 如何简化实时配置

实时配置时间的效率取决于您准确预测不同网站资源更新速率的能力。

显然,你必须处理的移动部分越多,这项任务就越困难。这就是为什么大多数每个页面都有数十个甚至数百个元素的网站很少能够维护精细的TTL策略。

使用 CDN 通过提供从控制仪表板更新 TTL 设置的用户友好方法简化了该过程。这使您能够更改单个资源或整个文件组的设置,而无需手动修改其 HTTP 标头。

某些 CDN 还采用机器学习技术来管理整个实时策略,从而有效地自动化该过程。值得注意的是,这允许缓存您的一些网站动态内容。

通过监控您网站内的用户交互,CDN能够跟踪提供给不同用户的内容版本之间的差异。基于这些差异,该服务能够确定某个对象是真正动态的还是简单地使用动态语言(例如PHP)构建的,并向所有访问者提供相同的副本。

扩展缓存策略以包含动态对象可能会对网站性能产生巨大影响,通常会将缓存利用率提高 20% 或更多。此外,这可确保用户获得准确和最新的信息。