Amazon ELBでキープアライブタイムアウトが尊重されない


9

Ubuntu(JDK 1.6)でTomcat 6.0.24を使用していて、HTTPSコネクターでコメットスタイルのリクエストを実行するアプリを使用しています(APRを使用せずに、Tomcatに対して直接)。

キープアライブを5分に設定したいので、ロングポーリング接続を更新する必要はありません。これが私の設定です:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="1000"  keepAliveTimeout="330000"
        scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />

残念ながら、サーバーは65秒後に接続を閉じているようです。サンプルセッションのpcapは次のようになります。

T=0   Client sends SYN to server, handshake etc.
T=65  Server sends FIN to client
T=307 Client sends FIN to server

(クライアントでの5分のタイムアウトは、HTTP libがサーバー側でソケットのクローズを検出していないことが原因だと思いますが、いずれにしても、サーバーが接続を早く閉じるべきではありません)

(編集:これは、標準のHTTPコネクターを使用する場合に期待どおりに機能します)

回答:


13

AmazonのELB(Elastic Load Balancer)にはドキュメント化されていない(フォーラムを除く)60秒のタイムアウトがあり、データが送信されなかった場合は接続が切断されます。55秒ごとに空白を送信することによるハッキングは、これを構成可能にするまで機能するようです。


(タイムアウトはまだあります、ところで.. jeesh)
sehugg

まだ設定できません...これは2009年以降の保留中の問題です...
DennisMünkle、


10

接続を閉じるロードバランサのタイムアウトがドキュメント化されました

ロードバランサーのアイドルタイムアウト設定を構成するには

  1. https://console.aws.amazon.com/ec2/にあるAmazon EC2コンソールを開きます
  2. ナビゲーションウィンドウの[ ロードバランシング ]で、[ ロードバランサー ]をクリックします。
  3. ロードバランサーを選択します。
  4. 下部のペインで、[ 説明 ]タブを選択します。
  5. [接続設定]を見つけて、(編集)をクリックします。
  6. [ 接続設定構成]ダイアログボックスで、アイドルタイムアウトの値を入力します。アイドルタイムアウトの範囲は1〜3,600秒です。
  7. 保存をクリックします

これが受け入れられた答えになるはずです。
ジョナタン2016


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.