启用 gzip,对于大型应用而言,是非常必要的。
实测 10M 的 js,压缩到了 2M,性能提升 5 倍!
未启用 gzip,10M,加载 14 秒:
启用 gzip,2M,加载 4 秒:
Response Headers 包含:
Content-Encoding: gzip
Request Headers 包含:
Accept-Encoding: gzip, deflate
Tomcat 配置
修改 Tomcat 的 conf/server.xml
1 2 3 4 5 6 7 8 9
| <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" useSendfile="false" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,application/javascript,text/css,text/json"/>
|
具体参数含义见Tomcat 配置
Nginx 配置
直接代理 Tomcat 的 Nginx,作如下配置:
1 2 3 4 5 6 7 8
| server{ gzip on; gzip_comp_level 6; gzip_min_length 2048; gzip_types text/html text/xml text/javascript application/javascript text/css text/json; gzip_http_version 1.0; gzip_vary on; }
|
具体参数含义见nginx 配置
多层 Nginx 的网络结构,外层的 Nginx,无论开启或关闭 gzip,内层 Nginx 的 gzip 仍然生效。