![Tomcat 5.5 http コネクタから Keep-Alive ヘッダーが送信されませんか?](https://rvso.com/image/515665/Tomcat%205.5%20http%20%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF%E3%81%8B%E3%82%89%20Keep-Alive%20%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%81%8C%E9%80%81%E4%BF%A1%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%3F.png)
現在、ハードウェア ロード バランサを使用しており、これが Apache に接続され、さらに AJP コネクタ経由で Tomcat 5.5 に接続されます。
さまざまな理由から、Apache を廃止することにしました。現在のシステムでは、Apache には利点がありません。
しかし、これを実行したときに送信されるヘッダーを見ると、Tomcat HTTPコネクタを使用すると「Keep-Alive: timeout=15 max=96」ヘッダーは送信されません。
興味深いことに、tomcat5.5 の「keepalivetimeout」に関するドキュメントは見つかりませんが、tomcat6 のドキュメントは見つかります。しかし、tomcat5.5 がこの設定をサポートしていないという証拠も見つかりません。
これが私のコネクタです:
<Connector port="8090" maxHttpHeaderSize="8192"
maxThreads="400" minSpareThreads="150" maxSpareThreads="300"
enableLookups="false"
connectionTimeout="2" maxKeepAliveRequests="400" disableUploadTimeout="true" />
それで、Tomcat 5.5 で http コネクタを使用し、このヘッダー エントリを強制的に送信する場合、キープアライブ タイムアウトを指定する方法はありますか?
明確にするために、Apache でサーバーから返される正確なヘッダー エントリは次のとおりです。
Keep-Alive: timeout=2, max=100
しかし、Tomcat/Coyoteからは何も得られません。
これをさらに調べてみましたが、Keep-Alive ヘッダー エントリはそれほど重要ではないと思います。問題は、Tomcat 5.5 HTTP コネクタで Keep-Alive がサポートされていないということのようです。Tomcat6 (+Java 6) では動作しているようです。
ありがとう、ダン
答え1
正しい方向に進んでいます。Tomcat 5.5 の connectionTimeout は、Tomcat 6.0 の keepalivetimeout と同じです。ただし、Tomcat の値はミリ秒単位、Apache の値は秒単位なので、値を 2 から 2000 に変更する必要があります。
Tomcatから送信されるHTTPヘッダーにタイムアウト値が表示されないのは正しいです。ただし、タイムアウトはサーバー側で実行されます。TomcatコネクタはHTTP/1.1で、Kee-Alive: timeout=X, max=Y
HTTP/1.0であるため、送信されないと想定しています。tomcat ドキュメントこの場合、ロードバランサーと Tomcat の両方のタイムアウト値を同期する必要があります。