大家好,我在我的网站上运行了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会出现这种情况吗?谢谢!
答案 0 :(得分:2)
根据您的具体.htaccess
配置 - 这很可能会导致您看到的内容。
如果您的后端没有指定任何特定的缓存标头,那么Cloudfront将根据您的云端配置进行缓存 - 但由于没有缓存标头,浏览器通常不会缓存,但会在每个请求上达到云端。 Cloudfront会将每个记录为HIT。
如果您的后端确实提名缓存标头,Cloudfront将尊重它们 - 但也会将它们传递到浏览器,因此浏览器本身可以缓存该对象。因此,浏览器只会在缓存过期时才会访问Cloudfront - 但到那时,Cloudfront也会过期其对象的缓存 - 并因此将其记录为MISS。
有关Cloudfront和浏览器如何处理不同原始标头组合的详细信息,请参阅Specifying How Long Objects Stay in a Cloudfront Edge Cache和Specifying the Amount of Time that CloudFront Caches Objects for Web Distributions。
每个ExpiresByType指令都会导致缓存标头Cache-Control: max-age=604800
被添加到每个请求中(604800是7天内的秒数) - 这将向浏览器发出可以缓存的信号该持续时间的对象。
有关可用于影响缓存的不同标头及其对缓存(例如Cloudfront)和浏览器的影响的更详细说明,请参阅此Caching Tutorial。