CloudFront 与 Edge Side 包括在内吗?

Joh*_*ohn 5 varnish amazon-cloudfront edge-side-includes

我最近才在阅读 Varnish Cache 的功能,以帮助优化我的 PHP 网站的性能。我读到了一个名为 Edge Side Includes 的功能,它似乎让我可以选择构建可以缓存在组件级别的 html 内容小部件。这样单个页面的动态内容可以缓存页面的一部分,而不缓存其他部分。

然后我开始研究 Amazon CloudFront,它似乎也提供页面级缓存功能。但我不清楚 CloudFront 是否提供等效的 Edge Side Includes。如果可能的话,有人可以为我澄清吗?这会影响我构建 PHP 网站的方式。

Jac*_*tad 2

不幸的是,Cloudfront 目前不支持 ESI。

您有三个前进的选择。

  1. 不要在 Cloudfront 中缓存内容此内容

  2. 缓存但 TTL 较低。例如,Cloudfront 中的缓存页面的 TTL 仅为 1-20 分钟,具体取决于您的应用程序需求。

  3. 实现一个后台作业,当某些内容发生更改时,该作业会使 Cloudfront 缓存失效。请注意,Cloudfront 对可以同时运行的并发失效作业数量有一些限制。也就是说,如果您的内容经常更改,这可能不起作用。请在此处阅读有关这些限制的更多信息

更新 您也许能够通过 Cloudflare 并使用其“Workers” Cloudflare Workers 和 ESI来实现 ESI 功能

  • 我还会添加一个选项,使用 Lambda@Edge 函数来解析 ESI 标签的响应并对其进行处理。我实际上没有尝试过这个,也找不到任何库可以做到这一点。然而,查看 Lambda@Edge 文档,所提供的功能似乎是可能的。 (3认同)