如何在tomcat中设置内容编码gzip

时间:2013-11-21 15:17:22

标签: web-services tomcat caching

我正在努力加快我的网站,

第一步是使用Tomcat压缩静态内容,如JS,CSS和Images。

将server.xml更新为

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/css, text/javascript, application/x-javascript, application/javascript, text/html, text/plain, text/xml, application/xml, x-font/otf, application/x-font-woff, x-font/ttf, x-font/eot"/>

这适用于请求标头

Accept-Encoding:gzip,deflate,sdch

但作为回应,没有

content encoding: gzip

任何人都可以帮助我

我尝试了几个链接

Enable GZIP Compression In Tomcat

gzip your Tomcat response

并将compression="on"更改为compression="force"

比响应更改为

content encoding: gzip

但这是获得gzip响应的正确方法

提前致谢

3 个答案:

答案 0 :(得分:1)

在Tomcat 8.5中,启用标准压缩(gzip)的正确方法是在server.xml文件中的catalina http连接器下添加以下2个属性:

  • useSendfile =“ false”
  • compression =“在”上

以下是我的连接器示例:

<Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" useSendfile="false"
           compression="on" compressionMinSize="1024" />

信息:http://tomcat.apache.org/tomcat-8.5-doc/config/http.html

答案 1 :(得分:0)

仅供参考,它不是compressableMimeType,它被拼写为compressibleMimeType时是“ i”不是“ a”

答案 2 :(得分:-1)

它不是强制压缩的正确方法。配置tomcat后,您必须在servlet中处理它,具体取决于客户端是否接受压缩。

您可以使用accept-encoding标头检查是否支持压缩。 这个Link有很好的解释如何实现这个