Ich verwende Tomcat 6.0.24 unter Ubuntu (JDK 1.6) mit einer App, die Anforderungen im Comet-Stil auf einem HTTPS-Connector ausführt (direkt gegen Tomcat, ohne APR).
Ich möchte die Keep-Alive-Funktion auf 5 Minuten einstellen, damit ich meine Verbindungen mit langen Abfragen nicht aktualisieren muss. Hier ist meine Konfiguration:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="1000" keepAliveTimeout="330000"
scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
Leider scheint der Server die Verbindung nach 65 Sekunden zu schließen. Das pcap einer Beispielsitzung sieht ungefähr so aus:
T=0 Client sends SYN to server, handshake etc.
T=65 Server sends FIN to client
T=307 Client sends FIN to server
(Ich vermute, das 5-minütige Timeout auf dem Client ist darauf zurückzuführen, dass die HTTP-Bibliothek den Socket auf der Serverseite nicht erkennt, aber auf jeden Fall sollte der Server die Verbindung nicht so früh schließen.)
(Bearbeiten: Dies funktioniert wie erwartet, wenn der Standard-HTTP-Connector verwendet wird.)
quelle
Das Load Balancer-Timeout, mit dem die Verbindung geschlossen wird, ist jetzt dokumentiert :
quelle
Das Zeitlimit für inaktive Verbindungen wird im Abschnitt zur Fehlerbehebung bei der Integritätsprüfung angegeben: http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-healthcheck.html
quelle
Der ELB-Leerlaufzeitlimitbereich wird aktualisiert und kann zwischen 1 Sekunde (Minimum) und 4000 Sekunden (Maximum) liegen. Der Standardwert für das Leerlaufzeitlimit beträgt 60 Sekunden.
https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html
quelle