Tomcat性能优化(一) 启动gzip压缩

系统 1872 0

 

设置TOMCAT启用GZIP压缩  通过浏览器HTTP访问

      
        
          <
        
        
          Connector 
        
        
          port
        
        
          ="8080"
        
        
           protocol
        
        
          ="HTTP/1.1"
        
        
           connectionTimeout
        
        
          ="20000"
        
        
           redirectPort
        
        
          ="8443"
        
        
           executor
        
        
          ="tomcatThreadPool"
        
        
           URIEncoding
        
        
          ="utf-8"
        
        
           compression
        
        
          ="on"
        
        
           compressionMinSize
        
        
          ="50"
        
        
           noCompressionUserAgents
        
        
          ="gozilla, traviata"
        
        
           compressableMimeType
        
        
          ="text/html,text/xml,text/javascript,text/css,text/plain"
        
        
          />
        
      
    

 

从上面节点的属性可以看出,要使用gzip压缩功能,你需要在Connector节点中加上如下属性

        
          compression="on" 启动压缩功能

compressionMinSize="2048"  设置启动压缩文件的最小值,也就是说当请求的资源大小 大于该值时才启动压缩 默认2048byte 也就是2KB

noCompressionUserAgents="gozilla, traviata" 设置不启动压缩的浏览器 该内容会在http请求头中找到 

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 设置哪些mime格式的资源需要压缩,具体格式可以再tomcat/conf/web.xml中找到
        
      

 

上面是专门针对Tomcat基于HTTP协议连接器(Connector)的配置,也就是只有当用户直接通过浏览器访问Tomcat的8080端口时,Tomcat才会针对配置进行GZIP压缩。如果我们的应用服务器是Apache+Tomcat集成的话 上面的配置就不起作用了,因为用户是通过浏览器访问Apache服务器,Apache服务器在转发请求到Tomcat去处理,他俩之间数据传输走的是另外一个连接器(Connector) [<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>], 但是AJP协议目前貌似还不支持GZIP的配置,所以我们只要自己扩展GZIP的压缩。

扩展的代码我们已经不需要去实现了,已经有现成的开源框架了,直接拿来用就可以了。pjl-comp-filter-1.8.1.jar

然后配置一下WEB.XML就可以了。

        
          
            <
          
          
            filter
          
          
            >
          
          
            <
          
          
            filter-name
          
          
            >
          
          CompressingFilter
          
            </
          
          
            filter-name
          
          
            >
          
          
            <
          
          
            filter-class
          
          
            >
          
          com.planetj.servlet.filter.compression.CompressingFilter
          
            </
          
          
            filter-class
          
          
            >
          
          
            <
          
          
            init-param
          
          
            >
          
          
            <
          
          
            param-name
          
          
            >
          
          compressionThreshold
          
            </
          
          
            param-name
          
          
            ><!-- 资源大小超过100byte的就被压缩 -->
          
          
            <
          
          
            param-value
          
          
            >
          
          100
          
            </
          
          
            param-value
          
          
            >
          
          
            </
          
          
            init-param
          
          
            >
          
          
            <
          
          
            init-param
          
          
            >
          
          
            <
          
          
            param-name
          
          
            >
          
          includeContentTypes
          
            </
          
          
            param-name
          
          
            ><!-- 启动GZIP压缩的MIME类型 -->
          
          
            <
          
          
            param-value
          
          
            >
          
          text/html,text/xml,text/javascript,text/css,text/plain
          
            </
          
          
            param-value
          
          
            >
          
          
            </
          
          
            init-param
          
          
            >
          
          
            </
          
          
            filter
          
          
            >
          
          
            <
          
          
            filter-mapping
          
          
            >
          
          
            <
          
          
            filter-name
          
          
            >
          
          CompressingFilter
          
            </
          
          
            filter-name
          
          
            >
          
          
            <
          
          
            url-pattern
          
          
            >
          
          /*
          
            </
          
          
            url-pattern
          
          
            >
          
          
            </
          
          
            filter-mapping
          
          
            >
          
        
      

 

还有一些其他的配置可以参考官方文档,在这里不一一说明了。还有就是对图片资源一般不启用GZIP压缩,因为他们已经采用高压算法了,在压缩没有意义反而会白白消耗服务器端的资源。

 

Tomcat性能优化(一) 启动gzip压缩


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论