tomcat和nginx设置content-Encoding:gzip

时间:2021-04-11 20:00:15

今天看到群里有人提到gzip的概念,就查了一下,发现是个很好的东西tomcat和nginx设置content-Encoding:gzip,原来竟然一直不知道。

gzip可以将服务器返回的文本数据压缩,也就是说浏览器下载的是压缩后的数据,然后在客户端再解压,这样可以大大提高网站的访问速度。而且压缩比例是非常错的。


tomcat配置,在server.xml里面配置如下:

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8"
                compression="on"
                compressionMinSize="2048"
                noCompressionUserAgents="gozilla, traviata"
                compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,application/json"
        />

compressableMimeType为需要压缩的文件类型。


tomcat配置好之后,重启,打开网页,用chrome的debug模式,在network里面可以看到js,css,json都被压缩过了。


因为我是用nginx和tomcat做的负载均衡和反向代理,把tomcat配置好之后,直接访问网站发现有的东西没有被压缩,才想到我用nginx做了静态分离,静态的东西如js,css,html和图片都是不经过tomcat,直接nginx处理的,所以还得配置nginx的gzip。


在nginx.conf里面:

 gzip on;
 gzip_types application/javascript text/css image/jpeg;

这两句可以写在server,http,或者location标签里面。具体请参考官网:http://nginx.org/en/docs/http/ngx_http_gzip_module.html