<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
executor="tomcatThreadPool"
URIEncoding="utf-8"
useSendfile = "false" //用户定期更新
compression="on"// 打开压缩功能 (on|off)
compressionMinSize="1024" // 启用压缩的输出内容大小1kb
noCompressionUserAgents="gozilla, traviata" // 对于这里配置的浏览器,不启用压缩
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/csv,application/javascript,application/json,application/xml"
/>
注意事项:1.useSendfile属性默认为true, 会禁用任何可能的压缩, 改成false就好了,tomcat默认设置是当数据大小达到48kb时,将启用文件传输(sendfile),所以我们想要压缩超过48kb的数据时必须将useSendfile设置为false
2.tomcat中的配置参数写错位置了。注意配置参数应该写到下图中A区而不是B区,就是protocol="HTTP/1.1"那个Connector中。
3.响应数据不是compressableMimeType参数配置的类型。我就遇到了这个坑,我们项目前后端传输用的是json。所以我最开始以为是“text/json”,后来打开Firebug的控制台,原来Content-Type的值是“application/json”
备注:如果发现内容没有被压缩,可以考虑调整compressionMinSize大小,如果请求资源小于这个数值,则不会启用压缩。
参考资料:https://www.cnblogs.com/DDgougou/p/8675504.html
原文:https://www.cnblogs.com/winniliu/p/13023774.html