今天看到群里有人提到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