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)
źródło
Limit czasu modułu równoważenia obciążenia, który zamyka połączenie, jest teraz udokumentowany :
źródło
Limit czasu nieaktywnych połączeń jest wymieniony w sekcji rozwiązywania problemów z sprawdzaniem kondycji: http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-healthcheck.html
źródło
Zakres limitu czasu bezczynności ELB został zaktualizowany i może wynosić od 1 sekundy (minimum) do 4000 sekund (maksimum), a domyślna wartość limitu czasu bezczynności wynosi 60 sekund.
https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html
źródło