Limit czasu aktywności nie jest przestrzegany w Amazon ELB

9

Używam Tomcat 6.0.24 na Ubuntu (JDK 1.6) z aplikacją, która wykonuje żądania w stylu Comet na złączu HTTPS (bezpośrednio przeciwko Tomcat, nie używając APR).

Chciałbym ustawić utrzymanie przy życiu na 5 minut, aby nie musiałem odświeżać połączeń z długim odpytywaniem. Oto moja konfiguracja:

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

Niestety wydaje się, że serwer zamyka połączenie po 65 sekundach. Plik pcap z przykładowej sesji wygląda mniej więcej tak:

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

(Zgaduję, że 5-minutowy limit czasu na kliencie wynika z faktu, że biblioteka HTTP nie wykrywa gniazda zamkniętego na końcu serwera, ale w każdym razie - serwer nie powinien tak wcześnie zamykać połączenia)

(edycja: działa zgodnie z oczekiwaniami przy użyciu standardowego konektora HTTP)

sehugg
źródło

Odpowiedzi:

13

ELB Amazon (Elastic Load Balancer) ma nieudokumentowane ( z wyjątkiem forów ) 60-sekundowe przekroczenie limitu czasu, które zerwie połączenie, jeśli nie zostaną przesłane żadne dane. Hakowanie przez wysyłanie białych znaków co 55 sekund wydaje się działać, dopóki nie skonfigurują tej opcji.

sehugg
źródło
(Upłynął limit czasu, BTW .. jeesh)
sehugg
nadal nie można go skonfigurować ... jest to
nierozwiązany
4
Konfigurowalny do 1 godziny teraz docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/…
Peter
10

Limit czasu modułu równoważenia obciążenia, który zamyka połączenie, jest teraz udokumentowany :

Aby skonfigurować ustawienie limitu czasu bezczynności dla modułu równoważenia obciążenia

  1. Otwórz konsolę Amazon EC2 na stronie https://console.aws.amazon.com/ec2/ .
  2. W okienku nawigacji, w obszarze ŁADOWANIE RÓWNOWAŻENIA , kliknij Load Balancers .
  3. Wybierz moduł równoważenia obciążenia.
  4. W dolnym okienku wybierz kartę Opis .
  5. Znajdź Ustawienia połączenia , a następnie kliknij (Edytuj) .
  6. W oknie dialogowym Konfiguruj ustawienia połączenia wprowadź wartość Limit czasu bezczynności . Zakres limitu czasu bezczynności wynosi od 1 do 3600 sekund.
  7. Kliknij Zapisz .
Zoltán
źródło
To powinna być teraz zaakceptowana odpowiedź.
jonatan