Spring Boot 启用Gzip压缩

/ Java / 没有评论 / 3119浏览

有两点需要注意

1、需要在application.properties里启用压缩,并设置压缩支持的格式(默认支持text/html等,但不支持application/json)

server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain

2、默认情况下,仅会压缩2048字节以上的内容

#默认就是2048 byte
server.compression.min-response-size=2048

以上内容,详见 *org.springframework.boot.context.embedded.*Compression

以及 *org.springframework.boot.autoconfigure.web.*ServerProperties

另外,这个设置本身是由servlet container提供的,所以,也可以在tomcat等的设置里找到。

对tomcat来说,在server.xml 的HTTP/1.1的connector节点中设置:

<!-- 这里的压缩设置,是默认的 -->
<Connector port="8888" protocol="HTTP/1.1" 
               connectionTimeout="21000" 
               redirectPort="28080" 
               URIEncoding="UTF-8"
               compression="on"  
               compressionMinSize="50"
               noCompressionUserAgents="gozilla, traviata"  
               compressionMinSize = “2048”
               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />

ps:以上是对于最新的Spring Boot来说的,如果是旧版本的(

参考:

Spring 官方指导

使用Tomcat的gzip功能(压缩请求)

tomcat配置gzip压缩compressionMinSize选项无效

Understanding Gzip Compression in Spring Boot ,Angular Java Application