Definindo o tempo limite para todos os mapeamentos ProxyPass na diretiva mod_proxy do Apache Server

1

O que eu tenho e trabalha:

Estou usando o Apache HTTPD 2.2 para solicitações de proxy. Eu tenho vários mapeamentos ProxyPass :

ProxyRequests On 
<Proxy *>
AddDefaultCharset off
    Order deny,allow
    Allow from all
</Proxy>
ProxyPreserveHost Off

ProxyPass /a http://some_ip/
ProxyPassReverse /a http://some_ip/

ProxyPass /b http://some_other_ip/
ProxyPassReverse /b http://some_other_ip/

...

Isso funciona bem.

O que eu quero:

Algumas das minhas solicitações estão demorando mais, então elas atingiram o tempo limite, o que me deu um Erro de proxy - Razão: Erro ao ler do servidor remoto .

Eu quero definir timeout para todas as minhas solicitações. Posso fazer isso sem ter que adicionar timeout=... KeepAlive=On para cada ProxyPass de mapeamento?

Atualmente tenho algo como:

ProxyPass /a http://some_ip/ timeout=1200 KeepAlive=On
ProxyPassReverse /a http://some_ip/

ProxyPass /b http://some_other_ip/ timeout=1200 KeepAlive=On
ProxyPassReverse /b http://some_other_ip/

... and i do this for all my ProxyPass mappings

Posso dizer ao Apache de alguma forma adicionar os parâmetros timeout e KeepAlive para todos os mapeamentos? Agradecemos antecipadamente.

Editar: também tentei usar diretamente a diretiva mod_reqtimeout , mas isso não funcionou comigo:

LoadModule reqtimeout_module modules/mod_reqtimeout.so

RequestReadTimeout header=1200 body=1200
    
por Raul Rene 12.02.2013 / 10:49

2 respostas

1

Consegui encontrar uma solução por conta própria. Você pode definir o tempo limite usando diretamente a diretiva ProxyTimeout de mod_proxy :

ProxyRequests On 
<Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all
</Proxy>
ProxyPreserveHost Off

ProxyTimeout 1200
    
por 12.02.2013 / 13:24
2

De acordo com a documentação do Apache, se a diretiva de configuração ProxyTimeout não for especificada, a configuração global / vhost de Timeout será usada e efeito. Portanto, se o backend estiver demorando mais do que Tempo limite segundos, o Apache fechará a conexão (!).

Assim, mesmo que ProxyTimeout tenha um padrão de 300s, você precisa especificá-lo de qualquer maneira para garantir que esteja em vigor.

    
por 07.01.2014 / 17:44