14

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 構成を実行しています。

HTML コンテンツを Tomcat で圧縮し、ヘッダーに「Content-Encoding: gzip」を追加するにはどうすればよいですか?

4

5 に答える 5

4

Tomcat が圧縮を行います。ただし、使用しているためmod_jk、 port の tomcat ではなく、ポート 80 の Apache 経由でリクエストを取得していると思います8080。実験として、ポート 8080 経由でページを取得しyslow、正しいヘッダーが表示されることを確認してください。

何が起こっているのかと思うと、Apache は tomcat から取得したコンテンツを解凍し、圧縮されたmod_jkコンテンツをブラウザに渡しています。

使用する場合mod_jkは、Tomcat ではなく Apache で圧縮を設定する必要があります。

于 2009-08-11T13:43:48.977 に答える
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>
于 2009-02-15T19:22:31.660 に答える
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また、属性をリストしないことに注意してください。

于 2010-03-02T19:21:16.690 に答える
1

J2EE Web アプリケーションのクライアント側の全体的なパフォーマンスを向上させるために、WebUtilities Java ライブラリを試すことができます。

ここにリンクがあります:: http://code.google.com/p/webutilities/

フィルター、タグ、サーブレット コンポーネントを提供して、さまざまなクライアント側のパフォーマンス プラクティスを適用し、PageSpeed/YSlow に対するパフォーマンス評価を高めます。

バージョン 0.0.4 以降、次のパフォーマンス プラクティスに役立ちます。

  1. HTTP リクエストを最小限に抑える - 1 つのリクエストで複数の JS/CSS ファイルを処理できます
  2. クライアント側キャッシング - 適切な Cache-Control、Expires ヘッダーを追加
  3. オンザフライ JS/CSS 縮小 - YUICompressor を使用
  4. 圧縮 - gzip/deflate/compress エンコーディングの双方向圧縮をサポート
  5. サーバーでの応答キャッシュ - 変更されていないリソースの再処理を避けるため
  6. 文字エンコーディングを追加 - ブラウザに事前に知らせる

また、MIME、URL、またはユーザー エージェントに対する高度な構成/カスタマイズも可能です。

于 2011-03-31T12:59:02.207 に答える