tomcat gzip 压缩配置,实现文件自动压缩的功能

   项目使用的是extjs作为前端框架,这样就需要加载大量的js文件,而且后台返回的数据也是json格式,我就想有没有一种能自动压缩json和js文件的方法,而且前端也能自动解压。这样就能大大减少页面的加载时间,提升用户体验。因为之前是自己手动压缩js文件,然后在web.xml里面配置一个filter,这样好是好,但是后台返回的json数据却不能压缩,而且不能达到一劳永逸的效果,每个需要压缩的文件都要手动压缩,我就在网上找有没有更好的解决办法,功夫不负有心人,终于找到了,只需要在tomcat的server.xml文件里添加一些配置项tomcat服务器就会自动压缩你指定的一些文件,而且经过测试IE浏览器也是支持的。代码如下:

 

    <Connector port="80" protocol="HTTP/1.1" 
               connectionTimeout="20000" URIEncoding="UTF-8"
               redirectPort="8443" 
			       compression="on"     
             compressionMinSize="8190" //默认大于8k的文件才压缩,因为服务器压缩也是需要耗费cpu的
              noCompressionUserAgents="gozilla, traviata"     
              compressableMimeType="text/html,text/xml,application/javascript,text/javascript,text/css,text/plain,application/json" 
			   />

 

     其中:compression 是否开启自动压缩

          noCompressionUserAgents 不压缩的文件格式

          compressionMinSize  超过这个大小的文件才被压缩  byte

          compressableMimeType 需要压缩的文件格式

   

  经过测试压缩率挺高。

友情提醒,如果是Tomcat 6/7, (影响最新Tomcat 7.0.29)
需要在Connector里面加上:
useSendfile=”false”
否则大于大于48K的文件不会压缩。(Tomcat 的Bug)

猜你喜欢

转载自wangning1125.iteye.com/blog/2201922