我使用Tomcat压缩我HTML内容是这样的:

<Connector port="8080" maxHttpHeaderSize="8192"
maxProcessors="150" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="150" connectionTimeout="20000" disableUploadTimeout="true"
compression="on" compressionMinSize="128" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html"
URIEncoding="UTF-8" />

在HTTP header(作为观察通过YSlow),但是,我没有看到

Content-Encoding: gzip

导致贫穷的YSlow分。

我所看到的是

HeadersPost
Response Headers
Server: Apache-Coyote/1.1
Content-Type:   text/html;charset=ISO-8859-1
Content-Language:   en-US
Content-Length: 5251
Date:   Sat, 14 Feb 2009 23:33:51 GMT

我是running apache mod_jk Tomcat配置。

我怎么压缩HTML内容与Tomcat,并且还有它添加"Content-Encoding:gzip"的头?

有帮助吗?

解决方案

看看 http://sourceforge.net/projects/pjl-comp-filter/.

其他定制的解决方案可能有存储器的泄漏。

此外,如果您使用的是mod_jk然后你肯定不使用8080连接器(其压缩支持)对于这些请求。

其他提示

Tomcat 将进行压缩。但是因为你正在使用 mod_jk 我猜您是通过端口 80 上的 Apache 而不是端口上的 tomcat 获取请求 8080. 。作为实验,尝试通过端口 8080 获取页面,然后检查 yslow 您应该看到正确的标题。

我认为正在发生的事情是 apache 正在解压从 tomcat 获取的内容 mod_jk 然后将压缩后的内容传递到浏览器。

如果您想使用 mod_jk 那么您需要在 Apache 而不是 Tomcat 上设置压缩。

也许压缩Tomcat正在参照未gzip压缩?这是在黑暗中刺,但它可能与白空间压缩,或管线修整。

我想象的Tomcat将在这方面(这里的希望)。

更明确一点

我们通过我们的应用程序运行duffmo提到gzip的过滤器,在web.xml看起来是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd">

    <display-name>App-Web</display-name>

    <!-- FILTERS -->

    <!-- Gzip filter -->
    <filter>
        <filter-name>GZIPFilter</filter-name>
        <filter-class>weblogicx.servlet.gzip.filter.GZIPFilter</filter-class>
    </filter>

    [snip]    
</web-app>

要提高 J2EE Web 应用程序的整体客户端性能,您可以尝试 WebUtilities java 库。

链接在这里 :: http://code.google.com/p/webutilities/.

它提供过滤器、标签、servlet 组件来应用各种客户端性能实践,从而获得比 PageSpeed/YSlow 更高的性能评级。

从 0.0.4 版本开始,它有助于以下性能实践。

  1. 最小化 HTTP 请求 - 可以在一个请求中提供多个 JS/CSS 文件
  2. 客户端缓存 - 添加适当的缓存控制、过期标头
  3. 动态 JS/CSS 缩小 - 使用 YUICompressor
  4. 压缩 - 支持 gzip/deflate/compress 编码的 2way 压缩
  5. 服务器上的响应缓存 - 避免重新处理未更改的资源
  6. 添加字符编码 - 让浏览器提前知道

它还针对 MIME、URL 或用户代理进行高度可配置/定制。

我看了一下这里的Tomcat文档: http://tomcat.apache.org/tomcat-5.5-doc/配置/ http.html

它提到使用compression="force"这为我工作。它还说,你可以设置一个minimum number。这工作得很好,我

<Connector port="8080" compression="256000" />

(压缩超过256Kb的任何东西)

有关compressableMimeType的默认值意味着我并不需要该属性。 另请注意,它不会列出CompressionMinSize属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top