我正在配置tomcat来压缩基于文本的文件。 我目前的配置有:
compression="on"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/xml,application/x-javascript,application/json"
但是,我注意到~60kb以上的javascript文件没有被压缩。 我错过了任何隐藏的设置吗?
答案 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>