Estou tentando entender o que está acontecendo com a seguinte mensagem no 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 mod_proxy. O Apache está atingindo o tempo limite da solicitação relacionada ao seu valor de tempo limite de 5 min no httpd.conf? (O que significa que ele não recebe uma resposta do servidor remoto em 5 minutos.) Ou isso é simplesmente uma resposta do servidor remoto dizendo que não pode lidar com a conexão?
O Apache rapidamente fica sem seus MaxClients toda vez que vejo esse erro.
Exemplo rápido de entrada Proxy:
ProxyPass /boom/ga https://super-load1-ga.test.com
ProxyPassReverse /boom/ga https://super-load1-ga.test.com
fonte
Timeout
valor global será usado. Consulte httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxytimeout e httpd.apache.org/docs/2.2/mod/core. html # timeoutParece que seu servidor
https://super-load1-ga.example.com
está demorando muito para responder.Nesse cenário, se ele simplesmente permanecer lá, o processo Apache aguardará por ele. Esse processo é essencialmente bloqueado, ou seja, não pode fazer mais nada. Se você não esgotar o tempo rápido o suficiente, ficará sem processos do Apache e atingirá o MaxClients, o que parece fazer sentido.
Você deve ter registros no site super-load1-ga.test.com para ver quanto tempo as solicitações estão demorando, elas devem estar demorando uma idade.
Você pode diminuir o tempo limite na conexão ProxyPass
http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers
fonte
Para responder à sua pergunta, sim, o httpd do Apache2 no modo proxy registra essa mensagem de erro quando o tempo limite do httpd do Apache2 é excedido. Se o servidor conectado ao httpd Apache2 no modo proxy fosse a causa, haveria uma mensagem diferente.
A mensagem possui várias partes:
The timeout specified has expired
é o equivalente em texto doAPR_TIMEUP
código de erro, consulte:srclib / apr / misc / unix / errorcodes.c
Então
proxy: error reading status line from remote server super-load1-ga.test.com
está emmódulos / proxy / mod_proxy_http.c
Se você aumentar o nível do seu log para APLOG_DEBUG, deverá receber uma mensagem adicional:
proxy: read timeout
também.fonte