Cnscorpio

{夫君子之所取者远,则必有所待;所就者大,则必有所忍!}

开启 Tomcat Gzip 的点滴

最近在忙乎不少规范性文档以及性能优化问题,这些东西其实早就应该有人做了,但系统运行时间短,积累的经验不够,项目通常比较紧使得太多基础工作没能做,现在不断补上,还算轻松。

为什么要开启Gzip ?

客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户端加载后渲染呈现,这种情况文件一般都比较大,如果开启Gzip ,那么服务器端响应后,会将页面,JS,CSS等文本文件或者其他文件通过高压缩算法将其压缩,然后传输到客户端,由客户端的浏览器负责解压缩与呈现。通常能节省40%以上的流量(一般都有60%左右),一些PHP,JSP文件也能够进行压缩。

那怎么开启呢?

Tomcat 开启Gzip :

1.找到Tomcat 目录下的conf下的server.xml,并找到如下信息

Connector port="8080"
maxHttpHeaderSize="8192"
maxThreads="150"  minSpareThreads="25" maxSpareThreads="75"
enableLookups="false"  redirectPort="8443" acceptCount="100"
connectionTimeout="20000"  disableUploadTimeout="true"

将它改成如下的形式(其实在上面代码的下面已经有了,将他们打开而已。):

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxHttpHeaderSize="8192"
maxThreads="150"  minSpareThreads="25" maxSpareThreads="75"
enableLookups="false"  redirectPort="8443" acceptCount="100"
connectionTimeout="20000"  disableUploadTimeout="true"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
>

这样,就能够对html和xml进行压缩了,如果要压缩css 和 js,那么需要将

compressableMimeType=”text/html,text/xml”加入css和js:

<Connector port="8080"
.........
compressableMimeType="text/html,text/xml,text/css,text/javascript"
>

你甚至可以压缩图片:

compressableMimeType=”text/html,text/xml”加入css和js:

<Connector port="8080"
.........
compressableMimeType="text/html,text/xml,text/css,text/javascript,image/gif,image/jpg"
>

——开启后——–

开启后重启Tomcat ,通过浏览器查看headers信息就能看到是否开启(firebug中有),如果开启了,那么transfer-encoding就会是Gzip,否则就是chunked。

用别的站点也能检测是否开启:

http://www.gidnetwork.com/tools/gzip-test.php

  1. Villiamin says:

    虽然看不懂代码,但是这一切都是提高用户使用效率的方法。猛烈支持!

  2. ltcn says:

    顶上顶,非常顶!

  3. no says:

    请教一下 为什么我按您上面的配置没有效呢,tomcat并没有对html文件进行压缩

说两句吧:
(*)
(*绝对不给酒吧女)