<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"
compressibleMimeType="text/css,text/javascript,application/json"
compression="on"
compressionMinSize="1024" />
</Connector>
compressibleMimeType:指定哪些 MIME 类型的内容可以进行压缩,多个类型用逗号分隔,默认为text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml。
compression:设置压缩方式,可取值为off(禁用压缩)、on(允许压缩,文本数据会被压缩)、force(强制在所有情况下压缩)或指定一个数值(等价于on,但指定了输出压缩前的最小数据量),默认为off。
compressionMinSize:当compression设置为on时,指定输出压缩前的最小数据量,默认为2048字节。
注意事项:
- 如果
Connector支持sendfile功能(如 NIO2 连接器),使用sendfile会优先于压缩,可能导致大于 48Kb 的静态文件不被压缩。可以通过设置useSendfile属性为false来关闭sendfile功能,或者调整DefaultServlet在conf/web.xml或应用程序web.xml中的sendfile使用阈值。
- 部分属性如
noCompressionStrongETag已被标记为废弃,在 Tomcat 10 及以后版本将被硬编码为true。
- 确保应用程序中的资源和请求处理逻辑与 HTTP/2 的特性兼容,例如处理额外的请求属性(如
org.apache.coyote.connectionID和org.apache.coyote.streamID)以及正确处理流控制等。