我一直在寻找让我的网站加载速度更快的方法,我想探索的一种方法是更好地利用CloudFront.
因为CloudFront最初不是作为自定义CDN设计的,而且它不支持gzipping,所以到目前为止,我一直使用它来托管我的所有图像,这些图像在我的站点代码中由其CloudFront CNAME引用,并使用Far-Futures标头进行优化。
另一方面,CSS和JavaScript文件托管在我自己的服务器上,因为到目前为止,我的印象是它们不能从CloudFront以gzip方式提供。GZIP的收益(约75%)超过了使用CDN的收益(约50%):Amazon S3(以及CloudFront)不支持通过使用浏览器发送的HTTP Accept-Encoding标头以标准方式提供GZIP内容,以表明其对GZIP压缩的支持,因此它们不能动态地提供gzip和服务组件。
因此,直到现在,我的印象是,人们必须在两种选择中做出选择:
将所有资产转移到Amazon CloudFront,忘记gzipping.
保持组件自托管,并配置我们的服务器以检测传入的请求,并在适当的时候执行动态gzipping,这就是我到目前为止所选择的做法。
有是工作区来解决这个问题,但本质上这些不起作用.[链接]。
现在,Amazon CloudFront似乎支持自定义来源,并且如果您使用的是自定义来源,那么现在可以使用标准的HTTP Accept-Encoding方法来提供gzip内容。[链接]。
到目前为止,我还没能在我的服务器上实现这个新功能。我在上面链接的博客文章(这是我发现的唯一一篇详细介绍更改的博客文章)似乎暗示,如果您选择自定义Origin(我不想使用),则只能启用gzipping(工具栏工作区,我不想使用):我发现在我的CloudFront服务器上托管相应的文件并从那里链接到它们更简单。尽管仔细阅读了文档,我还是不知道:
新功能是否意味着文件应通过自定义来源托管在我自己的域服务器上,如果是,什么代码设置将实现这一点?
如何配置CSS和JavaScript头,以确保它们是从CloudFront压缩的。