![O cabeçalho Keep-Alive não foi enviado do conector http do Tomcat 5.5?](https://rvso.com/image/515665/O%20cabe%C3%A7alho%20Keep-Alive%20n%C3%A3o%20foi%20enviado%20do%20conector%20http%20do%20Tomcat%205.5%3F.png)
No momento, estamos usando um balanceador de carga de hardware, que vai para o Apache e depois para o Tomcat 5.5 por meio do conector AJP.
Decidimos descartar o Apache por vários motivos - Em nosso sistema atual, isso não oferece nenhuma vantagem.
No entanto, quando olho para os cabeçalhos enviados quando fazemos isso, o cabeçalho "Keep-Alive: timeout=15 max=96" não é enviado quando você usa o conector http do Tomcat
Curiosamente, não consigo encontrar nenhuma documentação sobre "keepalivetimeout" para o Tomcat5.5, mas posso para o Tomcat6. Mas também não consigo encontrar evidências de que o Tomcat5.5 não suporte essa configuração.
aqui está meu conector:
<Connector port="8090" maxHttpHeaderSize="8192"
maxThreads="400" minSpareThreads="150" maxSpareThreads="300"
enableLookups="false"
connectionTimeout="2" maxKeepAliveRequests="400" disableUploadTimeout="true" />
Então; Existe alguma maneira de especificar o tempo limite de keepalive se usarmos o conector http com o Tomcat 5.5 e forçar o envio dessa entrada de cabeçalho?
Só para ficar claro - a entrada exata do cabeçalho que vejo no servidor é esta com o Apache:
Keep-Alive: timeout=2, max=100
Mas nada do Tomcat/coiote.
Examinei isso um pouco mais e não acho que a entrada do cabeçalho Keep-Alive realmente importe. O problema parece ser que os keep-alives simplesmente não são suportados no conector http do Tomcat 5.5? Eles parecem funcionar no Tomcat6 (+ Java 6).
Obrigado, Dan
Responder1
você estava indo na direção certa. no Tomcat 5.5 connectionTimeout é o mesmo que keepalivetimeout no Tomcat 6.0. mas você deve alterar o valor de 2 para 2.000, pois o valor do Tomcat está em milissegundos e o valor do Apache está em segundos.
você está certo, pois não vê o valor do tempo limite nos cabeçalhos http enviados pelo seu tomcat. mas o tempo limite entrará em ação no lado do servidor. Presumo que não seja enviado porque o conector Tomcat é HTTP/1.1 e Kee-Alive: timeout=X, max=Y
é HTTP/1.0. Enquanto odocumentação do tomcatdiz, você deve sincronizar os valores de tempo limite em ambos os lados, loadbalancer e tomcat no seu caso.