AWS Cloudfront和浏览器缓存设置

时间:2016-09-21 00:15:42

标签: amazon-web-services amazon-ec2

大家好,我在我的网站上运行了AWS Cloudront。我还通过.htaccess文件启用了浏览器缓存。

启用浏览器缓存后不久,我的Cloudfront点击量非常低,而且非常高。

我的htaccess有以下内容:

ExpiresByType text/css "access plus 7 days" 
ExpiresByType application/javascript "access plus 7 days" 
ExpiresByType text/javascript "access plus 7 days" 
ExpiresByType application/x-javascript "access plus 7 days" 
ExpiresByType text/js "access plus 7 days" 
ExpiresByType text/x-javascript "access plus 7 days" 
ExpiresDefault "access plus 2 days"

浏览器缓存和Cloudfront会出现这种情况吗?谢谢!

1 个答案:

答案 0 :(得分:2)

根据您的具体.htaccess配置 - 这很可能会导致您看到的内容。

Cloudfront行为

如果您的后端没有指定任何特定的缓存标头,那么Cloudfront将根据您的云端配置进行缓存 - 但由于没有缓存标头,浏览器通常不会缓存,但会在每个请求上达到云端。 Cloudfront会将每个记录为HIT。

如果您的后端确实提名缓存标头,Cloudfront将尊重它们 - 但也会将它们传递到浏览器,因此浏览器本身可以缓存该对象。因此,浏览器只会在缓存过期时才会访问Cloudfront - 但到那时,Cloudfront也会过期其对象的缓存 - 并因此将其记录为MISS。

有关Cloudfront和浏览器如何处理不同原始标头组合的详细信息,请参阅Specifying How Long Objects Stay in a Cloudfront Edge CacheSpecifying the Amount of Time that CloudFront Caches Objects for Web Distributions

.htaccess配置

每个ExpiresByType指令都会导致缓存标头Cache-Control: max-age=604800被添加到每个请求中(604800是7天内的秒数) - 这将向浏览器发出可以缓存的信号该持续时间的对象。

有关可用于影响缓存的不同标头及其对缓存(例如Cloudfront)和浏览器的影响的更详细说明,请参阅此Caching Tutorial