Apache Proxy TimeOut


18

Sto cercando di capire cosa sta succedendo con il seguente messaggio nel nostro error_log di 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.asp

Stiamo eseguendo Apache 2.2 con mod_proxy. Questo Apache ha il timeout della richiesta correlato al suo valore TimeOut di 5 minuti in httpd.conf? (Significa che non riceve una risposta dal server remoto in 5 min.) O è semplicemente una risposta dal server remoto che dice che non è in grado di gestire la connessione?

Apache esaurisce rapidamente i suoi MaxClients nel momento in cui vedo questo errore.

Esempio rapido di voce proxy:

ProxyPass /boom/ga https://super-load1-ga.test.com
ProxyPassReverse /boom/ga https://super-load1-ga.test.com

Risposte:


28

Il timeout aumenta nella direttiva ProxyPass :

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

I valori di timeout sono in secondi .


6

Ho anche un errore di geeting Il timeout specificato è scaduto .... Ho ProxyRequests Off, quindi è correlato? dovrei farlo per aumentare il timeout ......
Ashish Karpe,

5

Sembra che il tuo server a https://super-load1-ga.example.comstia impiegando troppo tempo a rispondere.

In quello scenario, se si trova lì, il processo Apache lo aspetta. Tale processo è sostanzialmente bloccato, cioè non può fare nient'altro. Se non esci abbastanza velocemente, finirai i processi Apache e colpirai MaxClients che sembra avere senso.

Dovresti avere i log sul sito super-load1-ga.test.com per vedere quanto tempo impiegano le richieste, che devono richiedere un'età.

Potresti potenzialmente abbreviare il timeout sulla connessione ProxyPass

http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers


Grazie per l'ottima risposta Phil. Quindi pensi che questo stia colpendo il valore principale TimeDut di httpd.conf di 5 minuti e Apache sta scadendo la sessione? Poiché non ho un timeout specifico per proxy impostato, sarebbe predefinito. Nel suggerimento di timeout del proxy pensi che dovrei usare la variabile ProxyTimeout o il comando ProxySet? (ProxySet connectiontimeout = 5 timeout = 30)
roacha

2

Per rispondere alla tua domanda, sì, Apache2 httpd in modalità proxy registra quel messaggio di errore quando Apache2 httpd scade. Se la causa fosse il server connesso a httpd di Apache2 in modalità proxy, ci sarebbe un messaggio diverso.

Il messaggio ha più parti: The timeout specified has expiredè l'equivalente testuale del APR_TIMEUPcodice di errore, vedi:

srclib / apr / misc / unix / errorcodes.c

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

Quindi proxy: error reading status line from remote server super-load1-ga.test.comè dentro

moduli / proxy / mod_proxy_http.c

Se si manovella il vostro livello di registro per APLOG_DEBUG si dovrebbe vedere un ulteriore messaggio: proxy: read timeouttroppo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.