Squid retry_on_error: codici di stato e percorsi alternativi
Usate Squid retry_on_error nell'ambito documentato di stati e destinazioni alternative, invece di trattarlo come un'impostazione universale di ripetizione delle richieste.
In Squid esiste un'opzione chiamata retry_on_error, ma il nome è più ampio della sua interpretazione utile. Non significa che ogni richiesta fallita venga ripetuta all'infinito finché la pagina non funziona.
Nelle versioni che supportano questa direttiva, è disattivata per impostazione predefinita. L'elenco di ripetizione documentato è 403, 500, 501, 502, 503 e 504, e la richiesta viene tentata attraverso un'altra destinazione funzionante. Questo è particolarmente rilevante in una gerarchia con percorsi di inoltro alternativi. Non è solo un nuovo tentativo temporizzato dello stesso socket verso lo stesso server.
Nominate prima l'errore
Un rifiuto durante la connessione a un proxy, un errore di autenticazione del proxy, un errore HTTP dell'origine e una risposta troncata dopo l'inizio della consegna non offrono la stessa opportunità di ripetizione. Non aspettatevi che un'unica impostazione tratti tutti e quattro allo stesso modo.
Per un'uscita privata, decidete anche se un percorso alternativo è accettabile. Un altro parent può avere un altro indirizzo pubblico di origine, un'altra politica di autenticazione o un'altra posizione di rete. Il successo attraverso quell'alternativa può violare il motivo per cui è stato scelto il primo parent.
Le operazioni applicative aggiungono un'altra preoccupazione: ripetere una richiesta può ripeterne l'effetto. Client e server necessitano di una semantica di ripetizione adeguata, in particolare per le operazioni che creano o modificano dati. Un'impostazione proxy non sostituisce la gestione a livello applicativo degli esiti incerti.
Leggete la direttiva per la vostra versione esatta; il riferimento elenca disponibilità e comportamento predefinito. Tenete presente anche le scadenze della richiesta e l'attesa totale visibile all'utente. Un ulteriore tentativo di inoltro può consumare il tempo rimanente senza produrre un risultato migliore.
Quando indagate su errori intermittenti, registrate lo stato, il parent o la destinazione scelti e la sequenza dei tentativi. Altrimenti le ripetizioni possono far sembrare un problema ricorrente di routing un sito generalmente lento, nascondendo il percorso che in realtà ha fallito.