访问我的站点后,我必须刷新以获取新内容。我用云端

After visiting my site I have to refresh for new content. I use cloudfront

我在 AWS 上有一个 WordPress 网站,负载均衡器后面有 2 个 EC2 实例。然后我让 CloudFront 指向该负载均衡器,S3 处理我的图像。

我们每天发布文章。当我访问该网站时,我需要重新加载页面才能看到新文章。

我设置了所有这些。但是,我不太了解 CloudFront,不知道如何诊断或解决问题。我只是假设它是 CloudFront,因为没有其他缓存工具在使用中。

如果是 CloudFront,可能是什么问题?如果没有,那我该如何解决?

几个月前,我遇到了与 Cloudfront 相同的问题。这是关于 Cloudfront 中 object 缓存的问题。因此,首先 go to this url 然后相应地设置云端并指向您的负载均衡器。

如果您这样做了,那么之前您需要配置 .htaccess 文件来设置这些 headers。我认为目前您有 300 秒或更长时间来缓存 objects。

所以,您的网站被缓存了 300 秒,您必须刷新它才能查看新内容。

这件事也可以通过使用像 breeze 这样的缓存插件来解决,或者您可以使用 LiteSpeed 网络服务器,它比任何其他具有自己的缓存插件的网络服务器快 5 倍。我更喜欢第二种方法,因为 LiteSpeed 帮助我加快网站速度并处理大量流量,例如在 5 美元的 Lightsail VPS 或 10 美元的 Ec2(t2.micro 实例)上每月处理 500 万+ 流量。

应用这些技术并告诉我它是否有效,或者我会告诉你其他方法。请记住,最好的办法是使用我推荐 Breeze 的缓存插件,并在 CloudFront 中使用该缓存插件的 ttl。或者您可以简单地使用 Litespeed 网络服务器来降低您的 AWS 成本并永久解决此问题。

您可以通过从源设置 TTL 并告诉 CloudFront 使用源的缓存来解决此问题 headers。

或者,您可以直接在 CloudFront 中通过

  • 将 index.html 的行为设置为 0 TTL(保持所有其他设置相同) 和
  • 其他一切的默认行为 *,并将 TTL 设置为您喜欢的任何值。

Path Patterns for Cache Behaviours 是一篇很有用的文章