2009-11-24 2 views
7

私はTomcat 6サーバーの前にapache 2.2サーバーを持っています。 Apacheのmod_proxy_ajpを使用してTomcatへのリクエストをプロキシします。かなり標準的なセットアップ。TomcatへのApacheのプロキシは生きている混乱を保ちます

私はブラウザ用のキープアライブ接続を無効にする必要がある場合、私はこれをどのように行うのですか?

私は私のユーザーの一部がランダムに問題を引き起こし非アクティブキープアライブ接続を落とすかもしれないファイアウォールを持っている疑いがあるので、私は無効にキープアライブHTTPリクエストを行う必要があります。

ApacheとTomcatの両方で設定のこまごまと「キープアライブ」の各種があります。

httpd.confのは、あなたがProxyPassディレクティブを設定httpd.confでも(私の場合の違いを作っているように見えていません)「のKeepAlive Off」に

を持っている、あなたは、パラメータ「キープアライブ」を持っていますが、このことができます私のapacheとtomcatとの間にプロキシ/ファイアウォールがある場合にのみ助けになると思われます。これは私の場合ではなく、問題ではありません。

は、Tomcat自体、HTTPコネクタは、「のKeepAliveTimeout」と「maxKeepAliveRequests」を持っているが、これは、HTTPコネクタのためだけです。

tomcat ajpコネクタには「keepAliveTimeout」もありますが、これはapjpからのajp要求であり、ブラウザからApacheへの実際のHTTP要求に流すべきかどうかはわかりません。 HTTP1.1分化対HTTP1.0もあり、それをすべて先頭に

だから、誰かが説明してくださいすることができます....混乱ますか?

+0

キープアライブ機能を無効にしたいのはなぜですか? – Stephane

答えて

12

少なくとも4つの「キープアライブ」があります。

  1. クライアントブラウザとApacheの間にキープアライブのHTTP層。 (HTTP/TCP接続で複数のクライアント要求を有効にし、KeepAliveディレクティブを設定します)。

  2. TCP層はクライアントブラウザとApacheの間にキープアライブします。 (ファイアウォールで接続が切断されるのを避けるため、定期的に空のパケットを送信します(Linuxではデフォルトで約2時間です)。 Tomcat。 (AJP/TCP接続で複数のApache要求を有効にします。 "ProxyPass"を構成するための "max"と "smax"オプションを設定してください)。

  3. ApacheとTomcatの間にTCP層がキープアライブします。 (2と同じですが、ApacheとTomcatの間にファイアウォールのため。「はProxyPass」のための「キープアライブ」オプションを設定するディレクティブ。) 内のファイアウォールのために正しく働くかもしれないので、

、ご使用の構成(「キープアライブオフ」)クライアントとApache。 "LogFormat"ディレクティブに "%X"を使用して、(上記のタイプ1の)キープアライブが無効になっているかどうかを確認してください。

ところで、 "KeepAliveTimeout"がそれほど大きくない場合、ファイアウォールによる接続の閉鎖は深刻な問題を引き起こさないと思います。 問題がない場合(警告メッセージ以外)、私の意見では、そのまま残すことができます。

関連する問題