<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
)以及正确处理流控制等。