首页 > 代码库 > Nginx中gzip_static模块

Nginx中gzip_static模块

在nginx中打开gzip压缩: 

gzip  on;  

gzip_min_length  1024;  

gzip_buffers     4 8k;  

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模块即可: 

location ~ ^/(assets)/  {  

  root /path/to/public;  

 gzip_static on; # to serve pre-gzipped version  

  expires max;  

  add_header Cache-Control public;  

}  


本文出自 “亮公子” 博客,请务必保留此出处http://iyull.blog.51cto.com/4664834/1864381

Nginx中gzip_static模块