N..*_*N.. 29 compression tomcat gzip server.xml
我在tomcat的conf/server.xml文件中添加了以下行以启用gzip压缩,但它无法正常工作.页面仍然是未压缩的.
<Connector port="8080"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/css,
text/javascript,text/json,application/x-javascript,
application/javascript,application/json"/>
Run Code Online (Sandbox Code Playgroud)
任何的想法?
Xha*_*lie 11
在Windows上,我在尝试在我的开发环境中临时启用内容压缩时遇到了这种行为,以便大致了解应用程序中页面的总有效负载.
我可以确认ESET NOD32 Antivirus的行为与@bugs_在他对这个问题的回答中描述的方式有关,我也可以确认运行Fiddler4具有相同的效果.但是,关闭Fiddler和禁用NOD32的HTTP扫描都无法解决问题,为此,我不得不在连接器中禁用"sendfile",如下所示:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
compression="on" compressionMinSize="8192" useSendfile="false"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
redirectPort="8443" />
Run Code Online (Sandbox Code Playgroud)
这里的重要属性是 useSendfile="false"
我在Windows下使用Apache Tomcat 8.Tomcat文档(http://tomcat.apache.org/tomcat-8.0-doc/config/http.html)说明以下内容useSendfile:
使用此属性可启用或禁用sendfile功能.默认值是true.请注意,使用sendfile将禁用Tomcat可能对响应执行的任何压缩.
这个关于compression:
在使用压缩(节省带宽)和使用sendfile功能(节省CPU周期)之间需要权衡.如果连接器支持sendfile功能,例如NIO连接器,则使用sendfile将优先于压缩.症状将是静态文件大于48 Kb将被解压缩.您可以通过设置连接器的useSendfile属性来关闭sendfile,如下所述,或者更改默认conf/web.xml或Web应用程序的web.xml中DefaultServlet配置中的sendfile使用率阈值.
在我的情况下,由于防病毒(ESET,Windows),它不起作用
它被绑定在浏览器之前的某个地方。它解压缩正文并删除“内容编码”标题。对于浏览器响应看起来像正常的未压缩响应。即使在 Fiddler 中,它也已经解压了。
Https 响应有效,但 ESET 对 http 响应进行了解压缩。
那还不够。关闭 ESET。我必须转到“高级设置”->“Web 访问保护”->“HTTP、HTTPS”并在那里将其关闭
如果您从硬盘驱动器提供文件,则可能需要在连接器中添加选项 useSendFile="false"。
| 归档时间: |
|
| 查看次数: |
29915 次 |
| 最近记录: |