Soluzione per errori 503 “Service temporarily unavailable” su Apache

Un nostro cliente aveva un problema con Apache: al riavvio della loro web application (che gira su un application server separato), Apache sembrava “addormentarsi” per circa un minuto, restituendo una pagina d’errore 503 “Service temporarily unavailable”.
Controllando i log, abbiamo trovato la causa del problema:

[Thu Oct 11 09:35:18 2012] [error] (111)Connection refused: proxy: HTTP: attempt to connect to 192.168.0.10:48880 (192.168.0.10) failed
[Thu Oct 11 09:35:18 2012] [error] ap_proxy_connect_backend disabling worker for (192.168.0.10)
[Thu Oct 11 09:35:19 2012] [error] proxy: HTTP: disabled connection for (192.168.0.10)
[...]

Il modulo proxy di Apache, vedendo che il servizio era down, bloccava tutte le richieste per un minuto. Per risolvere è bastato aggiungere l’opzione retry=0 alla direttiva ProxyPass nel file di configurazione:

ProxyPass / http://192.168.0.10:48880/ retry=0 timeout=5
ProxyPassReverse / http://192.168.0.10:48880/

Per maggiori informazioni si faccia riferimento alla documentazione di Apache.