开启 gzip 的作用自不必说,可以省很多流出带宽,可以省很多云豆。昨天这个博客的云豆消耗,其中流出带宽就占九成多,开启后就会只占五成多。
开启tornado 自带的gzip 功能
在 SAE 上开启 gzip 的过程还费了不少周折,首先是从 tornado 框架自带的设置来指定开启gzip压缩:
1
2
3
4
5
6
7
settings = {
'gzip': True,
}
app = tornado.wsgi.WSGIApplication(urls, **settings)
application = sae.create_wsgi_app(app)
没搞定!
直接添加头 Content-Encoding: gzip
结果运行不了,出现未知错误
在config.yaml 里指定开启压缩
后来看看官方AppConfig 服务文档,按照里面的方法试一下,还有效了,终于看到输出里面有 Content-Encoding: gzip
头了。原来是因为SAE Python 环境在调试,也就没关注PHP那边的文档。
方法如下(在 config.yaml
文件里加):
压缩
1
- compress: if (single_express) compress
在 compress
中 single_express
表示单一的表达式,不能用 &&
做复合,in_header,out_header,path 都可以出现在 single_express
中
例如:
1
2
3
- compress: if(out_header["Content-Length"] >= 10240) compress
- compress: if(in_header["Referer"] == "gphone") compress
- compress: if(path ~ "/big/") compress
这里是一个 config.yaml 配置示例
到此已成功在 SAE python 环境里启用 gzip 压缩。
本文网址: https://pylist.com/topic/5.html 转摘请注明来源