Tomcat, HTTP Keep-Alive y HttpsUrlConnection de Java

Tengo dos servidores Tomcat que necesitan mantener una conexión persistente para reducir el protocolo de enlace SSL. Un servidor (el proxy) se encuentra en una DMZ mientras que el otro está seguro detrás de otro firewall. El proxy básicamente solo ejecuta un servlet simple que realiza algunas comprobaciones de cordura antes de reenviar solicitudes a la máquina segura. En una solicitud inicial, las máquinas intercambian certificados antes de realizar el trabajo real. Por lo tanto, me gustaría mantener una conexión persistente con un tiempo de espera de unos minutos.

ara hablar con el servidor seguro, el servlet en el proxy usaHttpsUrlConnection. He configurado WireShark y he notado que no importa quékeepAliveTimeout valor que configuré para el conector en la máquina segura, la conexión TCP se cierra después de unos 5 o 10 segundos. Este número parece coincidir con lo que he leído es el tiempo de espera predeterminado y cómo Java maneja HTTP Keep-Alive. Estaenlac explica que Java honra a laKeep-Alive timeout si es enviado por el servidor, de lo contrario, usa 5 segundos (conexiones directas) o 10 segundos (conexiones proxy) antes de cerrar la conexión.

Lo que estoy tratando de averiguar es cómo puedo obligar a Tomcat a enviar el encabezado Keep-Alive. NoConnection: Keep-Alive, peroKeep-Alive: timeout=x.

He experimentado con el servidor HTTP Apache y modificando lakeepAliveTimeout en httpd.conf hace que el encabezado Keep-Alive cambie su valor de tiempo de espera. Además, Java respeta este tiempo de espera.

UPDATE (23/12/11): Después de ejecutar algunos experimentos más, intenté crear un código rápido y sucio utilizando HttpClient de Apache (3.1) en lugar deHttpsUrlConnection. Parece que HttpClient, cuando se configura para usar Keep-Alive, simplemente espera a que el servidor cierre la conexión. Sin embargo, no sé cuánto tiempo esperará. Estoy disparando para mantener viva la conexión HTTP durante 3 a 5 minutos.

Respuestas a la pregunta(6)

Su respuesta a la pregunta