访问我的网站后,我必须刷新以获取新内容。我使用cloudfront

时间:2019-01-24 00:46:34

标签: wordpress amazon-web-services caching amazon-s3 amazon-cloudfront

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

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

我将所有这些都设置好了。但是,我对CloudFront的了解还不足以知道如何诊断或解决问题。我只是假设它是CloudFront,因为没有其他缓存工具正在使用。

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

2 个答案:

答案 0 :(得分:0)

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

如果您已这样做,则以前需要配置.htaccess文件以设置这些标头。我认为目前您有300秒或更长时间来缓存对象。

因此,正在发生的情况是您的网站被缓存了300秒,您必须刷新它才能查看新内容。

也可以通过使用微风等缓存插件来解决此问题,或者您可以使用LiteSpeed Web服务器,该服务器比具有自己的缓存插件的任何其他Web服务器快5倍。我更喜欢第二种方法,因为LiteSpeed可以帮助我加快网站访问速度,并通过5美元的Lightsail VPS或10美元的Ec2(t2.micro实例)处理每月5M +的流量。

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

答案 1 :(得分:0)

您可以通过在原始位置设置TTL并告诉CloudFront使用原始位置的缓存标头来解决此问题。

或者,您可以直接通过

在CloudFront中执行此操作
  • 将index.html的行为设置为0 TTL(保留所有其他设置相同) 和
  • 其他所有内容的默认行为*,并将TTL设置为您喜欢的任何值。

Path Patterns for Cache Behaviours 是非常有用的文章

相关问题