2014-03-05 80 views
2

我已经通过Stackoverflow上的其他帖子了解了这个主题的很多建议,但是我仍然没有成功实现它。有人可以通过S3来源通过Cloudfront从Cloudfront提供gzip文件吗?

网站原点位于S3,它通过Cloudfront提供服务。通过其他帖子和亚马逊文档,我看到的建议,如:

1)Gzip必要的文件,从文件名称中删除.gz,但在上传时,仍然将元设置为gzip。这不适合我。 Safari只是下载gzip文件而不是用作网页。

2)亚马逊文档建议上传文件的gzip压缩版和非压缩版,但它没有提及如何工作。例如,你是否链接到网站html中的style.css和style.css.gz?如果是这样,是不是击败gzipping的目的加快网站,因为它似乎有两个要求,而不是一个?

此外,当您设置文档Cloudfront是为了检索,例如, index.html,如果你有一个gzip压缩文件和非压缩文件,你把它设置为要检索的文件?当我将文档设置为index.html.gz时,浏览器再次下载文件。

我在70-80%的利润率中获得了速度等级,这可能会更糟糕,但它也可能会更好。我不是初学者,但是我距离这家公司的专家有100万英里的距离,所以我希望我可以一步一步地走过这里。肯定有一些我不太对劲。

在此先感谢您的帮助。

回答

5

的过程应该是这样的:

  • gzip的本地文件(然后它应该被称为index.html.gz
  • 删除.gz扩展(现在文件名为index.html,但内容gzip压缩)
  • 上传文件到S3
  • 在S3管理控制台中的文件的元数据标签中根据它是什么文件设置正确的Content-Type并且
  • 设置Content-Encodinggzip

当链接到你的HTML标记gzip压缩的样式表只需指定名称没有.gz扩展。

一个不错的网站,以测试配置的工作原理是http://gzipwtf.com/

而且不要忘了无效CloudFront的缓存,如果你想它与文件被缓存。

编辑:

到与这个东西的手都是我建议你在某种构建过程的自动上传和设置头的过程中,时间反复折腾。 s3_website是一款不错的Ruby宝石,但也有其他命令行工具或Grunt插件可供使用。

+1

非常好。我不能要求更好的描述。谢谢mxlje。非常感激。 – user1483650

+0

很高兴你知道了,很高兴帮助。 – mxlje

相关问题