como aumentar o tempo limite de 5 minutos do Apache mod_proxy Jetty

1

usamos o Apache e o Jetty para instalar componentes por trás de um firewall. Algumas ações demoram um pouco (10 a 15 minutos). O Apache é o proxy e o Jetty é o alvo do proxy em algumas máquinas. Tudo funciona bem para ações que levam menos de 5 minutos. As ações que levam mais de 5 minutos falham com um erro de proxy 502.

Eu já vi alguns tópicos semelhantes e o conselho foi definir tempo limite e keepalive - ambos não ajudaram.

nossa configuração é:

Windows 2012R2 Apache 2.4.9 Molhe 7

Inicialmente esqueci de mencionar que existe um firewall entre o apache e o Jetty.

No httpd.conf do apache, temos:

ProxyPassMatch       ^/([a-z0-9\-]+)/(.+)$ http://$1:3000/$2       timeout=3000 ttl=3000 Keepalive=On

Esperávamos que o tempo limite = 3000 (3000 segundos) manteria o Apache esperando por aproximadamente 50 minutos pela resposta do Jetty. Keepalive e e ttl são ensaios ...

No Jetty, estamos chamando um simples script Groovy que simplesmente fica e espera por um longo tempo. Se o tempo de espera for pequeno, isso funciona como esperado. Se o tempo de espera for superior a 5 minutos, recebemos um erro:

Apache Access: (a solicitação começa às 17:25)

xxx.xxx.xxx.xxx- - [02/Apr/2016:17:25:47 +0200] "GET /server/scripts/waitlong.groovy HTTP/1.1" 502 445 "-" 300509428 "-" "10.119.1.20" 10.119.1.20 3000

Como você pode ver, a duração é de aproximadamente 5 minutos ~ 300509428 e, portanto, um tempo limite - deve durar 10 minutos.

Erro Apache: (a solicitação expira às 17:30)

[Sat Apr 02 17:30:47.815050 2016] [proxy_http:error] [pid 11656:tid 12736] (OS 10060)A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.  : [client 10.119.1.20:60466] AH01102: error reading status line from remote server w-bidb1hf:3000
[Sat Apr 02 17:30:47.815050 2016] [proxy:error] [pid 11656:tid 12736] [client 10.119.1.20:60466] AH00898: Error reading from remote server returned by /w-bidb1hf/scripts/waitlong.groovy

Alguma idéia de como fazer para manter o Apache esperando por mais tempo?

    
por Ralf 02.04.2016 / 18:46

1 resposta

0

Você pode tentar usar aspas ao redor da regex e da URL, conforme indicado na documentação do Apache , enquanto deixa os pares de valores-chave sem aspas.

Example

ProxyPass "/example" "http://backend.example.com" max=20 ttl=120 retry=300

Pode ser que, sem as aspas, o servidor não esteja lendo o ProxyPassMatch conforme você pretende e não reconheça onde os parâmetros básicos terminam e os valores da chave começam.

    
por 02.04.2016 / 19:07