Squid retry_on_error: statuskoder och alternativa rutter
Använd Squid retry_on_error inom dess dokumenterade omfång för status och alternativa destinationer, i stället för att behandla det som en universell inställning för att upprepa förfrågningar.
Det finns ett Squid-alternativ som heter retry_on_error, men namnet är bredare än den användbara tolkningen. Det betyder inte att varje misslyckad förfrågan upprepas i oändlighet tills sidan fungerar.
I versioner som stöder detta direktiv är det av som standard. Den dokumenterade upprepningslistan är 403, 500, 501, 502, 503 och 504, och förfrågan provas via en annan fungerande destination. Detta är särskilt relevant i en hierarki med alternativa vidarebefordringsvägar. Det är inte bara ett tidsstyrt nytt försök från samma socket till samma server.
Namnge felet först
En avvisning vid anslutning till en proxy, ett proxyautentiseringsfel, ett HTTP-fel från ursprunget och ett svar som avbröts efter att leveransen börjat ger inte samma upprepningsmöjlighet. Förvänta dig inte att en inställning behandlar alla fyra likadant.
För en privat utgång måste du också avgöra om en alternativ väg är acceptabel. En annan förälder kan ha en annan offentlig källadress, autentiseringspolicy eller nätverksplats. Framgång via det alternativet kan bryta mot skälet till att den första föräldern valdes.
Applikationsoperationer medför en annan oro: att upprepa en förfrågan kan upprepa dess effekt. Klienten och servern behöver lämplig upprepningssemantik, särskilt för operationer som skapar eller ändrar data. En proxyinställning ersätter inte hantering av osäkra resultat på applikationsnivå.
Läs direktivet för din exakta version; referensen listar tillgänglighet och standardbeteende. Tänk också på förfrågningstidsgränser och den totala väntetid användaren ser. Ett extra vidarebefordringsförsök kan förbruka den återstående tiden utan att ge ett bättre resultat.
När du undersöker intermittenta fel, registrera status, vald förälder eller destination och försöksordning. Annars kan upprepningar få ett återkommande routingproblem att se ut som en allmänt långsam webbplats, samtidigt som de döljer vägen som faktiskt misslyckades.