启用Tomcat的GZip压缩功能
Posted on: 2013-08-23, Last modified: 2013-08-23, View: 2776
Posted on: 2013-08-23, Last modified: 2013-08-23, View: 2776
关于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这个网站检验压缩是否成功。