2

Apache Httpd サーバーを介して動作するように (mod_jk によって) Tomcat サーバーを構成しています。

Apache Httpd サーバーは、ブラウザーに送信されるすべてのテキスト/html を (mod_deflate によって) 圧縮します。

一部の jsp ページはインタラクティブで長時間実行されます。つまり、実行中に進行状況やログを表示します。圧縮がオンになっている場合、これらのページのすべてのテキストは、ページ実行の最後に表示されます。

JSPページにいくつかの応答ヘッダーを設定できるようにしたいと思います。

<% response.setHeader("X-Compress", "0"); %>

また、Apache Httpd では、no-gzip環境変数を設定するなどして、圧縮を無効にする必要があります。

多分他のアプローチがありますか?

4

3 に答える 3

2

ページにヘッダーを追加するために mod_layout を使用しています。ページが mod_jk を介して tomcat から来る場合に問題があります。gzip されたバイナリ コードの前にプレーン テキスト ヘッダーを追加し、gz ファイルを破損します。ドキュメントは非常に貧弱なようですが、圧縮の問題以外はうまく機能します。

不運にも、

RewriteRule . - [E=no-gzip:1]

私にはうまくいきませんでした。

どちらもしませんでした:

AddOutputFilterByType DEFLATE テキスト/html テキスト/プレーン テキスト/xml

これはうまくいきました:

  1. mod_headers を有効にする

  2. VirtualHost に行を追加します

    RequestHeader unset Accept-Encoding

mod_headers の詳細: http://httpd.apache.org/docs/2.0/mod/mod_headers.html

私の mod_layout は Ubuntu のパッケージ マネージャーから取得しましたが、ここにもあります: htt p://download.tangent.org/

mod_layout について最初に読んだページは次のとおりです: http://www.linuxjournal.com/article/4334

于 2012-01-06T13:03:34.887 に答える
0

最近のセットアップでテスト済み(Apache httpd 2.2.16、Tomcat 6.0.29、mod_jk 1.2.30、tcnative-1.dll)。そのような問題はありません(Apache httpd 2.0.xを使用してもまだ存在している可能性があります)。

jspでresponse.flushBuffer()またはout.flush()を使用する場合、フラッシュパケットはmod_jkを介してApacheに送信されます。これにより、APRフラッシュバケットが作成されます。このバケットは、deflateモジュールによって受信され、圧縮バッファーをブラウザーにフラッシュするように強制されます。

したがって、応答は圧縮され、インタラクティブです。

PSただし、アプリケーションサーバーからのX-nogzipヘッダーに反応する関連パッチを作成しました。X-nogzip:1に設定すると、圧縮が無効になります。

http://huksley.sdot.ru/wp-content/uploads/2010/09/mod_jk-1.2.30-x-nogzip-patch.zip

于 2010-09-06T12:08:55.897 に答える
0

このヘッダーは、クライアントにどのように動作するかを伝えるためにのみ使用されるため、HTTP ヘッダー経由では可能ではないと思います。ただし、apache に通知する必要があります。

ただし、それがオプションである場合は、.htaccess ファイルを使用して無効にすることができます。

RewriteRule . - [E=no-gzip:1]
于 2010-08-05T11:40:46.010 に答える