如何设置最大tomcat gzip压缩大小?

时间:2013-03-11 20:59:14

标签: java tomcat gzip

我正在配置tomcat来压缩基于文本的文件。 我目前的配置有:

compression="on"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/xml,application/x-javascript,application/json"

但是,我注意到~60kb以上的javascript文件没有被压缩。 我错过了任何隐藏的设置吗?

1 个答案:

答案 0 :(得分:12)

搜索documentation for tomcat7我找不到对compressionMaxSize的引用。像这样的唯一命令是compressionMinSize,它用于过滤掉任何小于定义值的文件的压缩。像这样:

compressionMinSize="2048"

这是我的server.xml在压缩方面的样子:

compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"

实际上有一些与此相关的文档可以解释您的体验:

  

注意:在使用压缩之间需要权衡(保存你的   带宽)并使用sendfile功能(节省CPU周期)。如果   连接器支持sendfile功能,例如NIO连接器,   使用sendfile将优先于压缩。 症状   将是那些将发送48 Kb的静态文件   未压缩。您可以通过设置useSendfile来关闭sendfile   连接器的属性,如下所述,或更改   在DefaultServlet的配置中的sendfile使用阈值   默认的conf / web.xml或Web应用程序的web.xml。

因此,如果您想以牺牲CPU利用率为代价来节省带宽,可以通过将此设置添加到web.xml(seen here)来禁用此触发器:

<init-param>
    <param-name>sendfileSize</param-name>
    <param-value>96</param-value> <!-- value in KB where compression is turned off in the name of CPU utilization -->
</init-param>