我正在使用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标头中(通过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
我正在运行apache mod_jk Tomcat配置。
如何使用Tomcat压缩HTML内容,并在标题中添加“Content-Encoding:gzip”?
答案 0 :(得分:6)
查看 http://sourceforge.net/projects/pjl-comp-filter/。
其他自定义解决方案可能存在内存泄漏。
此外,如果您使用的是mod_jk,那么您当然不会为这些请求使用8080连接器(支持压缩)。
答案 1 :(得分:4)
Tomcat将进行压缩。但是因为你正在使用mod_jk
我想你是通过端口80上的Apache而不是端口8080
上的tomcat来获取请求的。作为实验尝试通过端口8080获取您的页面,然后检查yslow
您应该看到正确的标题。
我认为正在发生的事情是,apache正在通过mod_jk
解压缩从tomcat获取的内容,然后将泄露的内容传递给浏览器。
如果您希望使用mod_jk
,则需要在Apache而不是Tomcat上设置压缩。
答案 2 :(得分:2)
也许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>
答案 3 :(得分:1)
我在这里查看了Tomcat文档: http://tomcat.apache.org/tomcat-5.5-doc/config/http.html
它提到使用compression="force"
对我有用。它还说你可以设置一个minimum number
。这对我来说很好用
<Connector port="8080" compression="256000" />
(压缩超过256Kb的任何东西)
compressableMimeType
的默认值意味着我不需要该属性。
另请注意,它不会列出CompressionMinSize
属性。
答案 4 :(得分:1)
要提高J2EE Web应用程序的整体客户端性能,可以尝试使用WebUtilities java库。
它提供过滤器,标记,servlet组件以应用各种客户端性能实践,从而对PageSpeed / YSlow产生更高的性能评级。
从版本0.0.4起,它有助于遵循以下性能实践。
它还针对MIME,URL或用户代理进行了高度可配置/自定义。