Tomcat 开启 gzip

一、原理介绍

HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。

相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率也很高。

二、Tomcat 配置

找到 tomcat server.xml文件里的

1
2
3
4
5
6
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
/>

改为:

1
2
3
4
5
6
7
8
9
10
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain"
/>
  • compression=”on” 打开压缩功能
  • compressionMinSize=”50” 启用压缩的输出内容大小,默认为2KB
  • noCompressionUserAgents=”gozilla, traviata” 对于以下的浏览器,不启用压缩
  • compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain” 哪些资源类型需要压缩
    重启 tomcat 即可

三、测试

1. 外网环境

如果你有外网环境,可直接借用第三方的工具进行检测:
http://tool.chinaz.com/Gzips/
这里给出的是站长之家的一个链接,直接在里面输入网址即可,会告诉你是否启用 gzip,以及压缩率是多少。

2. 内网环境

上述方法只适用于有外网环境的机器测试,如果是内网环境还有个简单的方法可以进行判断:

  • 首先打开自己的内地网址。
  • 按 f12 打开浏览器的控制台(这里使用的是 webkit 内核的浏览器),点击network栏,再刷新页面,点击最开始的配置中设置需要 gzip 的文件类型中的任意一个,出现下图中所示两点即为成功:

gzip

但是这个方法不能检测到 gzip 的压缩率。
笨一点的办法也有,点击这个面板中的Response,把里面内容复制到一个文本文件中,保存,看文件的大小,再相除。