我已经从Stackoverflow上的其他帖子中得到了很多关于这个主题的建议,但我仍然没有成功地让它工作.
网站原产地位于S3,通过Cloudfront提供服务.通过其他帖子和亚马逊文档,我看到的建议如下:
1)Gzip必要的文件,从文件名中删除.gz,但在上传时,仍将meta设置为gzip.这不适合我.Safari只需下载gzip压缩文件,而不是用作网页.
2)亚马逊文档建议上传文件的gzip压缩版本和非压缩版本,但它没有提及它是如何工作的.例如,您是否链接到网站html中的style.css和style.css.gz?如果是这样,是不是打败了gzipping的对象加速网站,因为它似乎会有两个请求而不是一个?
此外,当您设置文档Cloudfront是要检索,例如index.html,如果您同时拥有一个gzip压缩文件和非压缩文件,您将其设置为要检索的文档?当我将文档设置为index.html.gz时,浏览器再次只下载该文件.
我在70-80%的利润率上获得了速度等级,这可能会更差,但也可能更好.我不是初学者,但我距离成为这方面的专家只有一百万英里,所以我希望我能在这里一步步走过.必须有一些我不太正确的事情.
在此先感谢您的帮助.
该过程应如下所示:
在本地gzip文件(然后应该调用它index.html.gz
)
删除.gz
扩展名(现在调用文件index.html
但内容被gzip压缩)
将文件上传到S3
在S3管理控制台中的文件的元数据选项卡中,根据文件和文件设置正确Content-Type
的文件
设置Content-Encoding
为gzip
链接到HTML标记中的gzip压缩样式表时,只需指定不带.gz
扩展名的名称.
一个很好的网站来测试配置是否有效http://gzipwtf.com/
如果您正在尝试使用的文件被缓存,也不要忘记使CloudFront缓存无效.
编辑:
为了不在手工操作这些东西,我建议你在某种构建过程中自动上传和设置标题的过程.s3_website是一个很好的Ruby宝石入门,但也有其他命令行工具或Grunt插件可用.