Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 云锋奇怪的行为_Caching_Amazon Web Services_Amazon Cloudfront - Fatal编程技术网

Caching 云锋奇怪的行为

Caching 云锋奇怪的行为,caching,amazon-web-services,amazon-cloudfront,Caching,Amazon Web Services,Amazon Cloudfront,我花了几个小时解决了一个AWS CloudFront问题,希望有人能救我:D 当我加载网站主页时,对于我获得的每个资产(每次重新加载时): 当我尝试在另一个选项卡中打开资源时,我得到了正确的行为(第一次调用时未命中,然后每次重新加载时命中)。curl请求也是如此 我重新装填我的房子并检查相同的资产,我得到: X-Cache:Hit from cloudfront 与选项卡中的年龄相似 然后我重新加载主页并再次检查同一元素: X-Cache:Miss from cloudfront :'( 从

我花了几个小时解决了一个AWS CloudFront问题,希望有人能救我:D

当我加载网站主页时,对于我获得的每个资产(每次重新加载时):

当我尝试在另一个选项卡中打开资源时,我得到了正确的行为(第一次调用时未命中,然后每次重新加载时命中)。curl请求也是如此

我重新装填我的房子并检查相同的资产,我得到:

X-Cache:Hit from cloudfront
与选项卡中的年龄相似

然后我重新加载主页并再次检查同一元素:

X-Cache:Miss from cloudfront
:'(

从这一点开始,当我在另一个选项卡中重新加载资源时,我会错过一次

有什么想法吗

谢谢


Jérémy

在对Apache配置和CloudFront配置进行了多次测试后,我发现cookie导致了这种行为

跟踪系统使用的一些cookie会在每次调用时更改其值,然后cloudfront不会缓存请求

要解决这个问题,请为每种类型的路径(后端调用、资产等)创建一个自定义行为,并创建一个您确实需要在其中转发的cookie白名单

我希望这能帮助别人


感谢@Alexakharenko和@BruceP的回复;)

是否是浏览器缓存存储了第一个选项卡的未命中?我的意思是-你确定每次都会从CloudFront获取响应吗?要验证它,请检查X-Amz-Cf-Id的值。如果每次重新加载的值相同,则为本地缓存。您是否正确设置了对象上的TTL?考虑到您描述的行为,TTL可能非常低或根本没有设置。看一看。谢谢你们的回复。Alexazakharenko:重新检查后,X-Amz-Cf-Id在每个请求上都不同BruceP:我不是缓存系统专家,我为资产TTL提供过期和缓存控制头,我认为这是正确的方法。对于我的资产,TTL在7200到86400秒之间。也许我对cloudfront发行版的配置有误,是不是有一些技巧和窍门?
X-Cache:Miss from cloudfront