通过S3将经过gzip压缩的CSS和JavaScript文件从Amazon CloudFront提供服务。

10 浏览
0 Comments

通过S3将经过gzip压缩的CSS和JavaScript文件从Amazon CloudFront提供服务。

我一直在寻找让我的网站加载更快的方法,我想要尝试的方法之一是更多地使用Cloudfront。由于Cloudfront最初并不是设计为自定义源CDN,并且不支持gzipping,所以到目前为止,我一直在使用它来托管我所有的图片,这些图片在我的网站代码中通过它们的Cloudfront cname引用,并且通过远期头进行了优化。另一方面,CSS和JavaScript文件是托管在我的自己的服务器上的,因为直到现在我一直以为它们不能从Cloudfront提供gzipped服务,并且从gzipping中获得的收益(大约75%)超过了使用CDN(大约50%)的收益:Amazon S3(以及Cloudfront)无法通过使用浏览器发送的HTTP Accept-Encoding头来提供标准的gzipped内容,因此它们无法即时Gzip和提供组件。因此,直到现在,我一直以为只能选择两个方案之一:

  1. 将所有资源移动到Amazon CloudFront,并忘记GZipping;
  2. 保持组件自托管,并配置我们的服务器来检测传入的请求并根据需要执行即时的GZipping,这是我迄今为止选择的方案。

有一些解决此问题的解决方法,但基本上它们没有起作用。[链接]。现在,似乎Amazon Cloudfront支持自定义源,并且如果您使用自定义源,则现在可以使用标准的HTTP Accept-Encoding方法来提供gzipped内容[链接]。

到目前为止,我还没有能够在我的服务器上实现这个新功能。我上面链接到的博客文章是唯一一个我找到详细描述这个变化的文章,它似乎暗示您只能在选择自定义源时启用gzipping(除非使用我不想使用的解决方法),而我宁愿不这样做:我发现将对应的文件托管在我的Cloudfront服务器上,并从那里链接到它们更简单。尽管仔细阅读了文档,我还不知道:

  • 新功能是否意味着文件应该通过自定义源托管在我的域服务器上,如果是这样的话,什么代码设置会实现这一点;
  • 如何配置CSS和JavaScript头文件以确保它们从Cloudfront提供gzipped服务。
0