O cabeçalho Keep-Alive não é enviado do conector http do Tomcat 5.5?

2

No momento, estamos usando um balanceador de carga de hardware, que então vai para o Apache e depois vai para o Tomcat 5.5 pelo conector AJP.

Decidimos descartar o apache por vários motivos: em nosso sistema atual, ele não oferece nenhuma vantagem.

No entanto, quando vejo 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 documentação sobre "keepalivetimeout" para tomcat5.5, mas posso para tomcat6. Mas também não posso 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 eu posso especificar o tempo limite keepalive se usarmos o conector http com o tomcat 5.5, e forçar esta entrada de cabeçalho para ser enviado?

Só para ficar claro - a entrada de cabeçalho exata que eu vejo de volta do servidor é isso com o apache:

Keep-Alive: timeout=2, max=100

Mas nada de tomcat / coiote.

Eu olhei isso um pouco mais, e eu não acho que a entrada do cabeçalho Keep-Alive realmente importe. O problema parece ser que as keep-alives simplesmente não são suportadas no conector http do tomcat 5.5? Eles parecem funcionar em tomcat6 (+ java 6).

Obrigado Dan

    
por Codek 08.06.2010 / 12:20

1 resposta

1

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 2000, já que o valor do tomcat é em milissegundos e o valor do apache é em segundos.

você está certo, já que não vê o valor de tempo limite nos cabeçalhos http enviados pelo seu tomcat. mas o tempo limite tomará medidas no lado do servidor. Eu suponho que ele não é enviado, pois o conector do tomcat é HTTP / 1.1 e o Kee-Alive: timeout=X, max=Y é HTTP / 1.0. como a documentação do tomcat diz, você deve sincronizar os valores de tempo limite em ambos os lados, loadbalancer e tomcat em seu caso.

    
por 18.08.2010 / 14:52