Apache Proxy TimeOut

15

Estou tentando entender o que está acontecendo com a seguinte mensagem em nosso error_log do Apache 2.2:

Wed May 18 21:03:29 2011] [error] [client 172.20.10.10] (70007)The timeout specified has expired: proxy: error reading status line from remote server super-load1-ga.test.com, referer: https://tester2.test.com/boom/ga/inside.as p

Estamos executando o Apache 2.2 com o mod_proxy. Este Apache está esgotando a solicitação relacionada ao seu valor de 5 min do TimeOut no httpd.conf? (Significa que não recebe uma resposta do servidor remoto em 5 min.) Ou isso é simplesmente uma resposta do servidor remoto dizendo que ele não pode manipular a conexão?

O Apache rapidamente fica sem MaxClients quando vejo esse erro.

Exemplo rápido de entrada do Proxy:

ProxyPass /boom/ga https://super-load1-ga.test.com
ProxyPassReverse /boom/ga https://super-load1-ga.test.com
    
por roacha 21.05.2011 / 00:37

3 respostas

24

Você aumenta o tempo limite na diretiva ProxyPass :

ProxyPass /boom/ga https://super-load1-ga.test.com connectiontimeout=300 timeout=300

Os valores de tempo limite estão em segundos .

    
por 14.10.2011 / 09:38
4

Parece que seu servidor em htts: //super-load1-ga.test.com está demorando muito para responder.

Nesse cenário, se apenas ficar lá, o processo do Apache vai esperar por ele. Esse processo é essencialmente bloqueado, ou seja, não pode fazer mais nada. Se você não tiver tempo rápido o suficiente, você vai ficar sem processos Apache e apertar MaxClients, o que parece que tudo faz sentido.

Você deve ter logs no site super-load1-ga.test.com para ver quanto tempo os pedidos estão sendo solicitados, eles devem estar com uma certa idade.

Você poderia encurtar o tempo limite na conexão ProxyPass

link

    
por 21.05.2011 / 01:19
2

Para responder à sua pergunta, sim, o Apache2 httpd no modo de proxy registra essa mensagem de erro quando o tempo limite do Apache2 httpd expira. Se o servidor conectado ao Apache2 httpd no modo proxy fosse a causa, haveria uma mensagem diferente.

A mensagem tem várias partes: The timeout specified has expired é o equivalente textual do código de erro APR_TIMEUP , consulte:

srclib / apr / misc / unix / errorcodes.c

case APR_TIMEUP:
    return "The timeout specified has expired";

Então proxy: error reading status line from remote server super-load1-ga.test.com está em

modules / proxy / mod_proxy_http.c

Se você aumentar seu nível de log para APLOG_DEBUG, deverá ver uma mensagem adicional: proxy: read timeout também.

    
por 17.12.2012 / 20:25