在SAE Python上开启gzip的方法

开启gzip 的作用自不必说,可以省很多流出带宽,可以省很多豆豆。昨天这个博客的豆豆消耗,其中流出带宽就占九成多,开启后就会只占五成多。

开启tornado 自带的gzip 功能

在SAE 上开启gzip 的过程还费了不少周折,首先是从tornado 框架自带的设置来指定开启gzip压缩:

settings = { 
'gzip': True, 
} 

app = tornado.wsgi.WSGIApplication(urls, **settings) 

application = sae.create_wsgi_app(app) 

没搞定!

直接添加头 Content-Encoding: gzip

结果运行不了,出现未知错误

在config.yaml 里指定开启压缩

后来看看官方http://sae.sina.com.cn/?m=devcenter&catId=193,按照里面的方法试一下,还有效了,终于看到输出里面有Content-Encoding: gzip 头了。原来是因为SAE Python 环境在调试,也就没关注PHP那边的文档。

方法如下(在config.yaml 文件里加):

压缩

    - compress: if (single_express) compress

在 compress 中 single_express 表示单一的表达式,不能用 && 做复合,in_header,out_header,path 都可以出现在 single_express 中

例如:

    - compress: if(out_header["Content-Length"] >= 10240) compress
    - compress: if(in_header["Referer"] == "gphone") compress
    - compress: if(path ~ "/big/") compress

这里是一个 https://github.com/ego008/saepy-log/blob/master/config.yaml

Relative Articles