Tomcat开启GZIP压缩,提升web性能(坑:大于48k的文件不压缩)

说明

HTTP压缩可以大大提高浏览网站的速度

它的原理是,在客户端请求服务器对应资源后,服务器端将资源文件压缩,再输出到客户端

由客户端的浏览器负责解压缩并浏览。即:通过减小HTTP响应大小来减少响应时间。相

对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。

gzip

关于 gzip,详见:
https://www.malaoshi.top/show_1EF2b9fjhVrl.html

tomcat开启gzip

Tomcat5.0以上。 修改 TOMCAT目录/conf/server.xml 配置文件,修改下面节点:

<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,application/javascript,text/css,text/plain,text/json"/>

参数说明:

  • compression="on" 开启压缩。可选值:”on”开启,”off”关闭,”force”任何情况都开启。

  • compressionMinSize="2048":大于2KB的文件才进行压缩。用于指定压缩的最小数据大小,单位B,默认2048B。注意此值的大小,如果配置不合理,产生的后果是小文件压缩后反而变大了,达不到预想的效果。

  • noCompressionUserAgents="gozilla, traviata",对于这两种浏览器,不进行压缩(我也不知道这两种浏览器是啥,百度上没找到),其值为正则表达式,匹配的UA将不会被压缩,默认空。

  • compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json" 会被压缩的MIME类型列表,多个逗号隔,表明支持html、xml、js、css、json等文件格式的压缩(plain为无格式的,可能访问 .txt文件)

坑:有的文件压缩、有的文件不压缩

tomcat默认大于 48Kb 的文件,为了节省cpu就不压缩

解决方式一:强制全局压缩

该tomcat下的所有web应用都会强制压缩

继续加上下面配置:

useSendfile="false"

解决方式

指定某个 web应用 强制压缩

配置该web应用的 web.xml:

<init-param>
    <param-name>sendfileSize</param-name>
    <param-value>96</param-value> <!-- value in KB where compression is turned off in the name of CPU utilization -->
</init-param>

提前将体积大的静态文件进行GZIP压缩

详见:
https://www.malaoshi.top/show_1IX8YbeThf0l.html

参考:
https://www.cnblogs.com/DDgougou/p/8675504.html
https://blog.csdn.net/bwangel/article/details/106277058


原文出处:/show_1IX720OFkhii.html