Een bestand met de naam /check.txt op een proxyhost klinkt als een voor de hand liggend gezondheidsdoel. De addertje onder het gras is dat Squids expliciete doorstuurlistener geen gewone website is die de documentroot van die host serveert.

Een verzoek in origin-stijl zoals HEAD /check.txt HTTP/1.1 laat het absolute doel weg dat wordt verwacht voor een gewoon HTTP-verzoek via een doorstuurproxy. Afhankelijk van de configuratie kan het worden geweigerd of door een andere lokale dienst worden afgehandeld. Beide uitkomsten kunnen u minder vertellen dan het dashboard suggereert.

Kies de dienst die u beschikbaar moet houden

ControleNuttig bewijs
TCP-verbinding naar de proxylistenerEen bereikbaar proces accepteert die verbinding.
CONNECT naar een gecontroleerd doelDe proxy accepteert dat tunnelverzoek.
HTTP-ophalen via de proxyHet gekozen verzoekpad kan een verwachte respons teruggeven.

In het derde geval heeft het verzoek een doel nodig, bijvoorbeeld:

HEAD http://probe.example.internal/proxy-ready HTTP/1.1
Host: probe.example.internal

De hostnaam is alleen ter illustratie. Gebruik een gecontroleerd eindpunt dat de proxy kan resolven en dat hij opzettelijk mag bereiken. http-check send van HAProxy ondersteunt het kiezen van methode, URI, versie en headers; configureer dat verzoek expliciet in plaats van een origin-servervoorbeeld ongewijzigd te erven.

HEAD kan een responsstatus en headers controleren. Het kan een responslichaam dat nooit wordt overgedragen niet valideren. Als het gezondheidscontract een markering in het lichaam vereist, kies dan een passende GET-controle en valideer die markering.

Houd het controleaccount en de bronbeperkingen nauw wanneer proxy-authenticatie in het spel is. De hele listener vrijstellen van authenticatie om een groen vinkje te krijgen verandert de dienst die wordt beschermd.

Bepaal ten slotte wat een mislukte controle moet verwijderen. Een gecontroleerde origin-storing kan de doorstuurcontrole van elke proxy tegelijk laten mislukken. Dat kan precies de afhankelijkheid zijn die u wilt meten, of een reden om listenergezondheid en end-to-end-beschikbaarheid als afzonderlijke signalen te houden.

Gerelateerde artikelen