O processo de execução demorada atinge o tempo limite por meio de um proxy do apache, mas não ao ignorar o proxy

2

Então eu tenho esse webapp baseado em tomcat. Parte dessa webapp permite fazer o upload de um arquivo que é verificado em um banco de dados de back-end. Esse processo leva muito tempo, até 15 minutos em alguns casos. Agora o problema é que estou recebendo timeouts na marca de 5 minutos quando executo esse processo através do apache, mas não quando o executo diretamente contra o tomcat. E então fica ainda mais estranho porque o processo funciona bem através do chrome, mesmo através do proxy. IE e FF engasgam com isso, ambos na marca de 5 minutos. Olhando para o tráfego de rede, parece que o lado do cliente está enviando a desconexão TCP e matando a conexão.

(para resumir)

Diretamente contra o tomcat via HTTP:

  • IE: bom
  • FF: bom
  • CH: Bom

Através do proxy via HTTP / HTTPS:

  • IE: tempo limite de 5 milhões
  • FF: tempo limite de 5 milhões
  • CH: Bom

Como funciona por meio do chrome, sou tentado a pensar que é um problema do IE / FF. Mas como funciona via IE / FF quando ignorando o proxy, estou inclinado a pensar que é um problema de proxy. E em ambos os casos, estou perplexo. E as pessoas estão começando a murmurar. Então, alguém tem alguma idéia sobre o porquê isso está acontecendo? Estou feliz em postar qualquer arquivo log / conf necessário ...

Meu proxy é configurado da seguinte maneira:

ProxyPass /unit ajp://appserver:8100/unit timeout=1800

ProxyPassReverse /unit ajp://appserver:8100/unit

EDIT: Adicionando versões:

  • Apache 2.2.3
  • Tomcat 5.5.27
  • IE 8
  • FF 4
  • Chrome 12

EDIT 2: Adicionando amostra de tráfego:

Isto foi retirado do servidor (10.122.39.81).

17:01:49.048093 IP 10.3.0.50.10448 > 10.122.39.81.443: . 102019:103231(1212) ack 146 win 65303
17:01:49.048531 IP 10.122.39.81.443 > 10.3.0.50.10448: . ack 103231 win 65535
17:01:49.048583 IP 10.3.0.50.10448 > 10.122.39.81.443: . 103231:104443(1212) ack 146 win 65303
17:01:49.048685 IP 10.3.0.50.10448 > 10.122.39.81.443: P 104443:105633(1190) ack 146 win 65303
17:01:49.048690 IP 10.122.39.81.443 > 10.3.0.50.10448: . ack 105633 win 65535
17:05:26.337167 IP 10.3.0.50.10448 > 10.122.39.81.443: R 2183272713:2183272713(0) ack    1747376881 win 9300

Como você pode ver, o fim do sinal de conexão vem do cliente, e não do servidor. Normalmente, eu diria apenas "ok, isso é um problema do lado do cliente". A única coisa que me impede disso é o fato de que o mesmo processo exato é bem-sucedido ao acessar o servidor tomcat diretamente pela porta 8001.

Neste ponto, Meus pensamentos são:

  • O servidor proxy não está configurado corretamente, mas de alguma maneira estranha que define um tempo limite no lado do cliente

OR

  • É um problema do lado do cliente, mas, por algum motivo, afeta apenas o tráfego pela porta 80 ou pela porta 443.
por Dan R 26.05.2011 / 22:30

0 respostas