Nginx中gzip_static模块的使用

在nginx中打开gzip压缩:

Nginx代码  收藏代码
  1. gzip  on;
  2. gzip_min_length  1024;
  3. gzip_buffers     4 8k;
  4. gzip_types       text/plain application/x-javascript text/css text/html application/xml;

一般情况,需要设置一下gzip_min_length的值,建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024
gzip_types:匹配MIME类型进行压缩,(无论是否指定)”text/html”类型总是会被压缩的。

另外nginx还提供了一个static_gzip模块,若要使用它需要在编译的时候把static_gzip模块编译进去:
./configure –with-http_gzip_static_module

此模块的作用就是在接到请求后,会到url相同的路径的文件系统去找扩展名为“.gz”的文件
比如:http://www.iteye.com/stylesheets/homepage.css
nginx就会先查找 stylesheets/homepage.css.gz 这个文件,如果存在直接把它发送出去,如果不存在,再将stylesheets/homepage.css文件进行gzip压缩,再发送出去,这样可以避免重复的压缩无谓的消耗资源,这个模块不受gzip_types限制,会对所有请求有效。所以建议不要在全局上使用,因为一般来说大部分都是动态请求,是不会有.gz这个文件的,建议只在局部我们确认有.gz的目录中使用。
Nginx不会自动的将压缩结果写入文件系统,这点不同于lighttpd,所以如果想使用static_gzip模块,需要自己写脚本生成.gz文件。
而对于Rails3项目来说就很方便了,只需要针对assets目录启用gzip_static模块即可:

Nginx代码  收藏代码
  1. location ~ ^/(assets)/  {
  2.   root /path/to/public;
  3.   gzip_static on; # to serve pre-gzipped version
  4.   expires max;
  5.   add_header Cache-Control public;
  6. }

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>