Estoy usando Tomcat 6.0.24 en Ubuntu (JDK 1.6) con una aplicación que hace solicitudes de estilo Comet en un conector HTTPS (directamente contra Tomcat, no usando APR).
Me gustaría establecer el mantenimiento de vida en 5 minutos para no tener que actualizar mis largas conexiones de sondeo. Aquí está mi configuración:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="1000" keepAliveTimeout="330000"
scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
Desafortunadamente, parece que el servidor cierra la conexión después de 65 segundos. El pcap de una sesión de muestra es algo como esto:
T=0 Client sends SYN to server, handshake etc.
T=65 Server sends FIN to client
T=307 Client sends FIN to server
(Supongo que el tiempo de espera de 5 minutos en el cliente se debe a que la biblioteca HTTP no detecta el cierre del socket en el extremo del servidor, pero en cualquier caso, el servidor no debería cerrar la conexión tan temprano)
(editar: esto funciona como se esperaba cuando se usa el conector HTTP estándar)
fuente
El tiempo de espera del equilibrador de carga, que cierra la conexión, ahora está documentado :
fuente
El tiempo de espera para conexiones inactivas se menciona en la sección de solución de problemas de comprobación de estado: http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-healthcheck.html
fuente
El rango de tiempo de espera inactivo de ELB se actualiza y puede ser de 1 segundo (mínimo) hasta 4000 segundos (máximo), y el valor predeterminado para el tiempo de espera inactivo es 60 segundos.
https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html
fuente