nginx下配置静态GZIP支持

对于web应用中,为了有良好的体验,对代码的压缩是很多站点必做的事情,特别是对于页面中用到的核心库代码的压缩(往往这些代码平时是很少修改的,如jquery的核心包,extjs的核心库ext-all.js),当然像这些代码他本身有压缩,但这种压缩对于我们来说还是不够的,如ext3.0的核心包,普通压缩以后都还有700K,这样的一个包对于高数据量访问的网站来说,占用的带宽的惊人的!但如果能把一个700k的包压缩到200K,那是不是节省了很大的带宽,对于运营网站的这省下来的就是RMB啊!上面都的闲话,下面说怎么配置:

1。GZIP 压缩工具压缩你的文件,你可以把你的文件压缩成.gz或其他扩展名都可以,gzip怎么用自己找,我给个命令行代码参考 c:>gzip.exe -c ext-all.js > ext.gz
2。配置nginx服务器,找到nginx的配置文件 nginx.conf 在文件中添加下面这段:
location ~ \.gz$ {
  //服务器所在的目录,这个一定要填,我之前弄了半天没弄好就是因为没填这个
  root   c:/AppServ/www;
  //给所有的 gz文件添加 Content-Encoding头为GZIP,其实也就是告诉浏览器,我这个是压缩文件,你收到了要帮我解压哦
  add_header  Content-Encoding  gzip;
}

3。重启nginx,测试,把页面中对ext-all的是引用改为压缩后的ext.gz ,看看对这个文件的请求头,返回的是不是 Content-Encoding gzip,这就对了!

4。我个人的习惯的针对不同的文件类型压缩的文件名不一样,对于JS的压缩,我习惯以.gzjs结尾,对于css 以.gzcss,怎样我们就可以在nginx的mime.types中直接设置这些文件的mime类型了
application/x-javascript              gzjs;
text/css                              gzcss;

这样设置之后你会感觉比不设置的响应速度明显要快,没设置的情况下服务器默认为下载的文件,所以在请求中我们是看不到响应内容的!

在网上找了很多配置的,但没有一个的配置能让我跑起来的,有些同学整得很复杂,结果我搞下来还是不行,还是这最简单的代码最使用,还有的没有指定root,所以也没跑起来,本人对nginx不熟练,先记下来,免得下次又忘记了!

猜你喜欢

转载自lovebeyond.iteye.com/blog/1220616
今日推荐