Tomcat配置gzip压缩详解
admin 2019-10-05 22:54:04 845人已围观
先说一说Tomcat上如何配置启用gzip压缩,我这里以tomcat7.0.56为例:
进入tomcat安装目录config/server.xml文件,找到<Connector port="80" protocol="HTTP/1.1" />节点,我这里是有80,443 两个,配置如下:
<Connector URIEncoding="UTF-8" port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443"
compression="on"
compressionMinSize="50"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/javascript,image/jpg,image/png,image/gif"
useSendfile="false"/>
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
URIEncoding ="utf-8"
compression="on"
compressionMinSize="50"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/javascript,image/jpg,image/png,image/gif"
useSendfile="false"/>
接下来详细说说其中几个主要参数的用法:
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的版本进去看<mime-mapping>节点里面的<mime-type>即可,自己选择的tomcat版本配置时与之对应即可。
useSendfile属性默认为true, 会禁用任何可能的压缩, 改成false就好了
常见问题记录:
1、配置后js没有被压缩:
原因:tomcat7以后,js文件的mimetype类型变为了application/javascript
解决方案:
将配置:compressableMimeType="text/javascript"
改为:compressableMimeType="application/javascript"
2、配置后json没有被压缩
原因:tomcat7以后,json文件的mimetype类型变为了application/json
文章专栏《开发随笔》