`
coconut_zhang
  • 浏览: 541760 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Apache Tomcat配置gzip压缩(HTTP压缩)功能

 
阅读更多

背景:
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人

一,对于Tomcat5.0以后的版本是支持对输出内容进行压缩的. 使用的是gzip压缩格式
下面是tomcat5.5.20 中的$tomcat_home$/conf/server.xml的原内容

 1      < Connector  port ="80"  maxHttpHeaderSize ="8192"
 2                maxThreads ="150"  minSpareThreads ="25"  maxSpareThreads ="75"
 3                enableLookups ="false"  redirectPort ="8443"  acceptCount ="100"
 4                connectionTimeout ="20000"  disableUploadTimeout ="true"  URIEncoding ="utf-8"   />
 5      <!--  Note : To disable connection timeouts, set connectionTimeout value
 6      to 0  -->
 7     
 8      <!--  Note : To use gzip compression you could set the following properties :
 9     
10                compression="on" 
11                compressionMinSize="2048" 
12                noCompressionUserAgents="gozilla, traviata" 
13                compressableMimeType="text/html,text/xml"
14      -->

从上面的8内容可以看出,要使用gzip压缩功能,你可以在Connector实例中加上如下属性即可
1) compression="on"
打开压缩功能
2) compressionMinSize="2048"
启用压缩的输出内容大小,这里面默认为2KB
3) noCompressionUserAgents="gozilla, traviata"
对于以下的浏览器,不启用压缩
 
4) compressableMimeType="text/html,text/xml"
 压缩类型


我这里的配置内容为:

 1     <Connector port="80" maxHttpHeaderSize="8192"
 2                maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
 3                enableLookups="false" redirectPort="8443" acceptCount="100"
 4                connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8"
 5                   compression="on" 
 6                compressionMinSize="2048" 
 7                noCompressionUserAgents="gozilla, traviata" 
 8                compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"  />
 9     <!-- Note : To disable connection timeouts, set connectionTimeout value
10      to 0 -->
11     
12     <!-- Note : To use gzip compression you could set the following properties :
13     
14                compression="on" 
15                compressionMinSize="2048" 
16                noCompressionUserAgents="gozilla, traviata" 
17                compressableMimeType="text/html,text/xml"
18     -->
19

 

 

其實是 tomcat 6 把注释整個拿掉,让大家以为TomcatGzip不再支持,其实不然,大家可以看一下http://tomcat.apache.org/tomcat-6.0-doc/config/http.html就知道,Tomcat依然支持这个功能。

Tomcat7下配置gzip:

server.xml 找到

1 <Connector port="8080" protocol="HTTP/1.1"
2                connectionTimeout="20000"
3                redirectPort="8443" />

替换成

1 <Connector port="8080" protocol="HTTP/1.1"
2                connectionTimeout="20000"
3                redirectPort="8443"
4                compression="on"
5                compressionMinSize="2048"
6                noCompressionUserAgents="gozilla,traviata"
7                compressableMimeType="text/html,text/xml,text/css,text/plain,text/javascript,application/x-javascript,application/javascript" />
对于某些文本文件比如:log、txt等文件,我们也可以让服务器采用gzip压缩传输,修改conf目录下web.xml,添加    

<mime-mapping>
         <extension>log</extension>
         <mime-type>text/plain</mime-type>
</mime-mapping>

等,就可以指定压缩传输了。通常情况下,压缩传输能大幅度提高展示速度。

 

 一旦启用了这个压缩功能后,我们怎么来测试压缩是否有效呢?首先Tomcat是根据浏览器请求头中的accept-encoding来判断浏览器是否支持压缩功能,如果这个值包含有gzip,就表明浏览器支持gzip压缩内容的浏览,所以我们可以用httpclient来写一个这样的简单测试程序  

窗体顶端

程序代码:

package com.liusoft.dlog4j.test; 

import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.methods.GetMethod; 

/** 
* HTTP
客户端测试类 
* @author liudong 
*/
 
public class HttpTester { 

/** 
* @param args 
*/
 
public static void main(String[] args) throws Exception{ 
  HttpClient http = 
new HttpClient(); 
  GetMethod get = 
new GetMethod("http://www.dlog.cn/js/prototype.js"); 
  try
  get.addRequestHeader(
"accept-encoding""gzip,deflate"); 
  get.addRequestHeader(
"user-agent""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toolbar; Maxthon 2.0)"); 
  
int er = http.executeMethod(get); 
  
if(er==200){ 
   System.out.println(get.getResponseContentLength()); 
   String html = get.getResponseBodyAsString(); 
   System.out.println(html); 
   System.out.println(html.getBytes().length); 
  } 
}
finally
   get.releaseConnection(); 



窗体底端

 

执行这个测试程序,看看它所输出的是什么内容,如果输出的是一些乱码,以及打印内容的长度远小于实际的长度,那么恭喜你,你的配置生效了,你会发现你网站的浏览速度比以前快多了。

分享到:
评论

相关推荐

    tomcat设置gzip压缩共2页.pdf.zip

    【标题】:“Tomcat设置Gzip压缩”是一个关于在Apache Tomcat服务器上配置Gzip压缩以提高Web应用程序性能的主题。Gzip是一种广泛使用的数据压缩算法,它可以减少HTTP响应的大小,从而加快网页加载速度,降低网络带宽...

    tomcat,apache,iis的GZIP配置

    【GZIP配置详解:Tomcat, Apache, IIS】 GZIP是一种广泛使用的数据压缩...总的来说,无论是在Tomcat、Apache还是IIS服务器上,启用GZIP压缩都是提升Web性能的有效手段,只需要根据各自服务器的配置方式进行适当调整。

    apache-tomcat-9.0.14

    在Linux或Mac OS环境下,你可以通过`tar -zxvf apache-tomcat-9.0.14.tar.gz`命令来解压缩文件。在Windows下,可以使用7-Zip或其他支持.tar.gz格式的工具进行解压。 Apache Tomcat的核心功能包括: 1. **Servlet...

    开启TOMCAT6的GZIP压缩

    为了提升用户体验并减轻网络带宽的压力,TOMCAT服务器可以通过启用GZIP压缩功能来优化数据传输。GZIP是一种常用的文件格式与数据压缩算法,能够显著减少文件大小,从而提高传输效率。对于使用TOMCAT6作为应用服务器...

    apache-tomcat-7.0.70.tar.gz

    总结,`apache-tomcat-7.0.70.tar.gz`是针对Linux的Tomcat版本,通过解压、配置和启动,可以在Linux环境中搭建一个Java Web应用服务器。了解如何管理和维护Tomcat对于任何从事Java Web开发的人来说都是至关重要的。

    apache-tomcat-8.5.31.tar.gz

    标题中的"apache-tomcat-8.5.31.tar.gz"表明这是一个归档文件,采用了tar和gzip两种压缩格式。tar是一种打包工具,用于将多个文件或目录合并成一个单一的文件,而gzip则是一种常见的数据压缩算法,用于减小文件大小...

    最新版linux apache-tomcat-7.0.104.tar.gz

    tar用于打包多个文件和目录为一个单一的文件,而gz则是gzip压缩工具的后缀,用于减小文件大小,便于传输和存储。 【标签】"linux","apache","tomcat","7.0.104"这些标签揭示了该压缩包的关键信息。"linux"表明它...

    apache-tomcat-8.5.83.tar.gz

    - 这个版本包含了一些性能改进、安全修复和新的功能,比如支持HTTP/2协议,提供更好的多路复用和压缩能力。 3. **.tar.gz文件格式**: - .tar.gz是Linux系统中常见的文件打包和压缩格式,它首先使用tar命令将多个...

    apache-tomcat-10.0.12.tar.gz

    `.gz`是gzip压缩算法的扩展名,用于减小文件大小。在Linux上,可以使用`tar`命令解压并提取`.tar.gz`文件,例如:`tar -zxvf apache-tomcat-10.0.12.tar.gz`。 4. **Linux x64系统**:x64指的是基于64位AMD或Intel...

    apache-tomcat-7.0.109.tar.gz

    所以,"apache-tomcat-7.0.109.tar.gz"是一个经过gzip压缩的Tomcat 7.0.109的归档文件。 解压此文件后,我们将得到"apache-tomcat-7.0.109"目录,其中包含以下核心组件和文件: 1. **bin**:这个目录包含启动和...

    apache-tomcat-8.5.78.tar.gz

    - 开启压缩和GZIP压缩以减少网络传输。 10. **监控与性能分析**: - 使用JMX(Java Management Extensions)进行服务器监控。 - 利用VisualVM、JProfiler等工具进行Java应用性能分析。 总的来说,Apache Tomcat...

    apache-tomcat-8.5.47-windows-x64.zip

    为了提升性能,可以考虑调整Tomcat的线程池大小、JVM内存设置、开启GZIP压缩等。此外,还可以通过调整JVM的垃圾回收策略和使用数据缓存来提高响应速度。 综上所述,Apache Tomcat 8.5.47在Windows x64环境下提供了...

    apache-tomcat-8.5.38.tar.gz

    `.tar.gz`是Linux和Unix环境中常用的文件压缩方式,它结合了`tars`(用于打包多个文件)和`gzip`(用于压缩打包后的文件)的功能,以减小文件大小,便于传输和存储。 首先,我们要了解如何处理`.zip`和`.tar.gz`这...

    tomcat GZIP源码

    标题 "Tomcat GZIP源码" 指的是Apache Tomcat服务器中用于实现GZIP压缩功能的源代码。GZIP是一种广泛使用的数据压缩算法,它能够有效地减小HTTP响应的大小,从而提高网页加载速度,降低网络带宽的消耗。在Tomcat中,...

    最新版linux apache-tomcat-9.0.52.tar.gz

    3. **tar.gz文件**:这是一个常见的Linux归档文件格式,由tar工具进行打包,然后用gzip压缩。解压此文件通常需要先用gunzip或zcat命令解压缩,再用tar命令解包。例如,命令行可以是`gunzip apache-tomcat-9.0.52.tar...

    最新版linux apache-tomcat-9.0.54.tar.gz

    这是Linux中常见的归档和压缩格式,由`.tar`(用于打包多个文件或目录为一个单一文件)和`.gz`(使用gzip压缩算法进行压缩)组合而成。要解压这个文件,你需要在Linux终端中使用`tar`命令,例如: ```bash tar -...

    apache-tomcat-7.0.39.tar.gz

    标题中的"apache-tomcat-7.0.39.tar.gz"表明这是一份使用tar命令打包并使用gzip压缩的文件,这是在Linux系统中常见的归档格式。这个文件包含了Apache Tomcat 7.0.39的所有源代码、配置文件、库和其他必要的组件,供...

    tomcat开启gzip

    本文将详细介绍如何在Tomcat服务器中开启GZIP压缩功能。 #### 1. GZIP压缩简介 GZIP是一种广泛使用的数据压缩格式,它使用Lempel-Ziv编码(LZ77)进行压缩。当服务器将数据发送给客户端时,如果浏览器支持GZIP压缩...

    apache-tomcat-9.0.53.tar.gz

    在本例中,我们关注的是版本9.0.53的压缩包文件"apache-tomcat-9.0.53.tar.gz",这是一个常见的Linux/Unix格式的归档文件,使用gzip压缩算法。 1. **Tomcat简介** - **功能**:Tomcat主要作为Servlet容器,但也...

Global site tag (gtag.js) - Google Analytics