HAProxy-sundhedstjek til en Squid-videresendelsesproxy
Byg et HAProxy-sundhedstjek, der taler med en videresendelsesproxy, og skel mellem lytterens tilgængelighed, CONNECT-accept og hentning fra origin.
En fil med navnet /check.txt på en proxyvært lyder som et oplagt sundhedsmål. Haken er, at Squids eksplicitte videresendelseslytter ikke er et almindeligt websted, der serverer værtens dokumentrod.
En origin-lignende anmodning som HEAD /check.txt HTTP/1.1 udelader det absolutte mål, der forventes for en almindelig HTTP-anmodning gennem en videresendelsesproxy. Afhængigt af konfigurationen kan den blive afvist eller håndteret af en anden lokal tjeneste. Begge udfald kan fortælle dig mindre, end dashbordet antyder.
Vælg den tjeneste, du skal holde tilgængelig
| Tjek | Nyttigt bevis |
|---|---|
| TCP-forbindelse til proxylytteren | En tilgængelig proces accepterer den forbindelse. |
| CONNECT til et kontrolleret mål | Proxyen accepterer den tunnelanmodning. |
| HTTP-hentning gennem proxyen | Den valgte anmodningssti kan returnere et forventet svar. |
I det tredje tilfælde kræver anmodningen et mål, for eksempel:
HEAD http://probe.example.internal/proxy-ready HTTP/1.1
Host: probe.example.internal
Værtsnavnet er kun illustrativt. Brug et kontrolleret endepunkt, som proxyen kan slå op, og som den bevidst har tilladelse til at nå. HAProxys http-check send understøtter valg af metode, URI, version og headere; konfigurer den anmodning eksplicit i stedet for at arve et origin-server-eksempel uændret.
HEAD kan kontrollere en svartilstand og headere. Det kan ikke validere en svartekst, der aldrig overføres. Hvis sundhedskontrakten kræver en markør i teksten, vælg et passende GET-tjek og validér den markør.
Hold tjekkontoen og kildebegrænsningerne stramme, når proxygodkendelse er involveret. At fritage hele lytteren fra godkendelse for at få et grønt hak ændrer den tjeneste, der beskyttes.
Beslut til sidst, hvad et mislykket tjek skal fjerne. Et kontrolleret origin-nedbrud kan få hver proxys videresendelsestjek til at fejle samtidig. Det kan være præcis den afhængighed, du vil måle, eller en grund til at holde lytterens sundhed og ende-til-ende-tilgængelighed som separate signaler.