前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网站优化之Tomcat启用Gzip压缩

网站优化之Tomcat启用Gzip压缩

作者头像
sunonzj
发布2022-06-21 12:58:39
1.5K0
发布2022-06-21 12:58:39
举报
文章被收录于专栏:zjblogzjblog

Gzip概念

HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来。即:通过减小HTTP响应大小来减少响应时间。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。

这样传输就快了,效果就是你点击网址后会很快的显示出来。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率也很高。当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的。

Tomcat配置Gzip

开启tomcat的Gzip只需修改server.xml配置文件,在Connector中添加下面4个参数即可。

代码语言:javascript
复制
21<Connector executor="tomcatThreadPool"  port="80" protocol="HTTP/1.1" 2•               connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

修改为

代码语言:javascript
复制
xxxxxxxxxx41<Connector executor="tomcatThreadPool"  port="80" protocol="HTTP/1.1" 2               connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"3               compression="on" compressionMinSize="2048"   4               noCompressionUserAgents="gozilla, traviata"                            compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"/>
  1. compression="on" 开启Gzip压缩,默认为off
  2. compressionMinSize="2048"大于2KB的文件才进行压缩,对资源压缩时会消耗一定的cpu性能,对2KB以上的资源才进行压缩是官方给出的建议,实际使用时可以根据需求在响应时间和cpu性能之间做取舍;
  3. noCompressionUserAgents="gozilla, traviata",对于这两种浏览器,不进行压缩
  4. compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"表明支持html、xml、js、css、json等文件格式的压缩

还有其他配置,比如:

代码语言:javascript
复制
xxxxxxxxxx11useSendfile = "false" //useSendfile属性默认为true, 会禁用任何可能的压缩, 改成false就好了(可不配置)tomcat默认设置是当数据大小达到48kb时,将启用文件传输(sendfile),所以我们想要压缩超过48kb的数据时必须将useSendfile设置为false

保存退出,重启Tomcat服务器即可。

但是我重启完发现并没有成功。如果响应头有Content-Encoding: gzip即为成功。

启动Gzip无效的原因

1、如果发现内容没有被压缩,可以考虑调整compressionMinSize大小,如果请求资源小于这个数值,则不会启用压缩。

2、响应数据不是compressableMimeType参数配置的类型。可打开浏览器检查控制台,查看响应头Content-Type的值是否配置在compressableMimeType。

3、tomcat中的配置参数写错位置了,配置错了。

但是我配置是正确的,没有以上的情况

然后经过一番查找,发现是因为我这是加密请求,使用的https,如果是http以上方法即可。https的话需要在port="443"的Connector中也进行压缩配置。如下:

代码语言:javascript
复制
xxxxxxxxxx101<!--证书配置 -->2    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="*****"3    maxThreads="*****" scheme="https" secure="*****"4    keystoreFile="*****"5    keystorePass="*****"6    clientAuth="*****" sslProtocol="*****" 7     connectionTimeout="*****" redirectPort="*****" URIEncoding="UTF-8"8               compression="on" compressionMinSize="2048"   9               noCompressionUserAgents="gozilla, traviata"                            compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"10    />

保存再重启tomcat,发现已经好了。启用成功!

157854997258812051562.png
157854997258812051562.png

站长工具查也有了

157854987191331071014.png
157854987191331071014.png

然后对比下效果还是不错的。

压缩前

157854990766807064236.png
157854990766807064236.png

压缩后

157854994854748049916.png
157854994854748049916.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档