启用Tomcat的GZip压缩功能
Posted on: 2013-08-23, Last modified: 2013-08-23, View: 1588

关于GZIP

HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人。

Tomcat自5.0以后使用GZIP实现压缩,在tomcat5的server.xml文件里有压缩的属性,但是在注解里,只要把所列属性添加到connector标签里即可。tomcat6.0里面则去掉了这些注释,但是依然支持GZIP压缩。属性的意义如下:

  • compression="on" 打开压缩功能
  • compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB
  • noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩 
  • compressableMimeType="text/html,text/xml" 压缩类型

如何启用

找到tomcat服务器配置文件,通常在../conf/server.xml, 找到connector标签,加入以上四个属性,压缩类型最好把javascript,css也加上,ex:

<!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" 
           compression="on" 
           compressionMinSize="2048" 
           noCompressionUserAgents="gozilla, traviata" 
           compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"/>
    <!-- A "Connector" using the shared thread pool-->

 

至于这个压缩是否有用不好讲,感觉打开页面的时间没有明显的快,只是在用诊断工具的时候有发现下载文件大小减少,不知道下载和服务器压缩的过程到底哪个会对访问速度有影响。可以访问http://gzip.zzbaike.com这个网站检验压缩是否成功。

Go
Friend Links:
Bill Site
https://item.taobao.com/item.htm?spm=a21an.7676007.1998473182.296.lAvrE2&id=45399580446