1. 配置启用gzip
vi 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,text/css,text/plain" />
配置说明:
compression="on" 打开压缩功能
compressionMinSize="2048" 启用压缩的最小内容大小,FileSize>=2048时才压缩
noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 启用压缩的资源类型
2. 测试gzip是否生效
Tomcat是根据浏览器请求头中的accept-encoding来判断浏览器是否支持压缩功能,如果这个值包含有gzip,就表明浏览器支持gzip压缩内容的浏览,我们可以用两种方法来验证压缩是否生效。
2.1 请求原生内容
curl -I http://xxx:8080/protoweb/test.txt
Wireshark抓包分析:
抓包发现浏览器发送HTTP GET请求,随后接收到211个数据包,第211个包为HTTP 200结束包。请求该文件总耗时达5s。
2.2 请求压缩内容
curl -H 'Accept-Encoding: gzip,deflate' -I http://xxx:8080/protoweb/test.txt
抓包发现与2.1发送数据包一致,压缩未生效?
谷歌搜索发现与NIO零拷贝有关,正如nginx会默认开启 sendfile on,Tomcat也是默认开启useSendfile="true",sendfile属性原型见Linux下系统调用sendfile(),sendfile()高效的原因是因为避免文件多次在内核态用户态间的拷贝(零拷贝方式),直接在内核中通过socket发送至网络。
WEB服务器启用压缩功能虽说可节省网络宽带,加快网络传输速度,但却对服务器带来了CPU压力,大文件压缩对服务器而言得不偿失。
Tomcat 默认>48kb,不启用压缩。
解决方案:
全局配置,关闭sendfile特性。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" useSendfile="false" compression="on" compressionMinSize="50" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />
设置useSendfile=false。
sevlet配置:
限制sendfile文件大小。
<servlet> <init-param> <param-name>sendfileSize</param-name> <param-value>96</param-value> </init-param> </servlet>
由于是静态资源,采用全局配置关闭sendfile特性,测试:
通过抓包发现,现在只有14个响应包,请求总耗时才0.06s,的确很快。
相关推荐
本文将详细介绍如何在Tomcat服务器中开启GZIP压缩功能。 #### 1. GZIP压缩简介 GZIP是一种广泛使用的数据压缩格式,它使用Lempel-Ziv编码(LZ77)进行压缩。当服务器将数据发送给客户端时,如果浏览器支持GZIP压缩...
1. 打开压缩功能:在`<Connector>`节点中添加`compression="on"`,这表示开启gzip压缩。 2. 设置压缩阈值:通过`compressionMinSize`属性设定启用压缩的最小输出内容大小。例如,`compressionMinSize="50"`表示当...
5. **自定义配置**:Tomcat的GZIP源码通常允许开发者通过web.xml配置文件调整过滤器的行为,例如设置最小压缩长度、启用或禁用GZIP,以及选择性地对某些类型的资源应用压缩。 6. **多线程安全**:在高并发环境下,...
3. **启用Gzip压缩**:在`<Connector>`标签内,添加`compression="on"`属性来开启Gzip压缩。同时,可以设置`compressionMinSize="2048"`,表示只有当响应体大小超过2048字节时才启动压缩,以避免对小文件的过度压缩...
### 开启TOMCAT6的GZIP压缩 #### 背景与意义 随着互联网的发展,用户对于网页加载速度的要求越来越高。为了提升用户体验并减轻网络带宽的压力,TOMCAT服务器可以通过启用GZIP压缩功能来优化数据传输。GZIP是一种...
在`<Connector>`标签内添加或修改以下参数来开启gzip压缩: 1. `compression="on"`:设置为"on"表示开启gzip压缩。如果设置为"off",则关闭压缩。此外,"force"选项强制压缩所有请求,包括非文本内容如图片。 2. `...
通过修改服务器配置文件,可以轻松开启gzip压缩功能,从而提升网站性能。在Tomcat 5.5.20版本中的server.xml配置文件中,可以找到标签,这是定义服务器端接受和处理HTTP请求的关键配置部分。通过在标签中添加特定的...
在Tomcat中启用GZIP压缩非常简便。只需在`server.xml`的HTTP Connector配置中添加`compression`参数,并将其值设为`on`。例如: ```xml maxThreads="150" connectionTimeout="20000" redirectPort="8443" ...
在Tomcat服务器中启用GZIP压缩功能,可以通过修改Tomcat的配置文件server.xml来实现。server.xml文件位于Tomcat的conf目录下,通常需要以管理员权限修改。为了启用压缩,需要在元素中设置一些特定的属性。 具体配置...
在Web服务器的配置优化中,启用Gzip压缩是一项重要的性能提升措施,它能显著减少网页的响应时间,提高用户体验。本文主要介绍在Apache Tomcat服务器上配置和验证Gzip压缩是否生效的方法。 首先需要了解Tomcat中关于...
本文主要讲解了如何在Tomcat中配置多端口域名访问,并且详细介绍了如何开启gzip压缩,以提高Web应用的性能和响应速度。 首先,我们要了解如何在Tomcat中配置不同的端口来访问同一域名。在Web服务器中,端口是用来...
在Web应用中,开启gzip压缩功能能够显著减小数据传输量,从而加快网页加载速度,降低服务器带宽消耗。以下是对EhCache开启gzip压缩功能的详细说明。 首先,gzip是一种广泛使用的数据压缩算法,尤其在Web服务器中,...
这里,`compression="on"`开启GZIP压缩,`compressionMinSize="2048"`表示只有当响应内容大于2048字节时才会进行压缩。`noCompressionUserAgents`用于指定某些不支持GZIP的浏览器,如gozilla和traviata,不会对其...
对于Apache Tomcat这种广泛使用的Java Web应用服务器,Tomcat 7版本提供了内置的支持以开启gzip压缩功能,从而帮助用户优化其Web应用的性能。 在Tomcat 7服务器中开启gzip压缩功能,主要通过修改Tomcat的配置文件来...
Tomcat的性能可以通过调整JVM参数、增大线程池大小、开启GZIP压缩、启用HTTP/2等方式进行优化。监控和分析日志也能帮助识别性能瓶颈。 七、Tomcat集群与负载均衡 当需要处理高并发时,可以设置Tomcat集群,实现负载...
4. 开启GZIP压缩以减少网络传输的数据量。 总结,Apache Tomcat 8.0.3是一个强大的Java Web服务器,能够有效地支持JSP和Servlet应用。通过了解其核心特性和工作原理,以及正确配置和优化,我们可以充分利用Tomcat的...
5. 优化Web应用程序:压缩静态资源,减少HTTP请求,启用GZIP压缩,以及使用CDN服务等。 在安装和部署Tomcat时,还需要注意以下几点: 1. 确保Java环境已正确安装并配置,且版本与Tomcat兼容。 2. 配置系统环境变量...
为了提升性能,可以考虑调整Tomcat的线程池大小、JVM内存设置、开启GZIP压缩等。此外,还可以通过调整JVM的垃圾回收策略和使用数据缓存来提高响应速度。 综上所述,Apache Tomcat 8.5.47在Windows x64环境下提供了...