Hoe u effectieve gezondheidscontroles kunt implementeren in HAProxy

Hoe U Effectieve Gezondheidscontroles Kunt Implementeren In Haproxy



Het instellen van uw HAProxy om te fungeren als uw load balancer is onvolledig als u geen effectieve servergezondheidscontroles overweegt. Het implementeren van de health checks helpt bij het verbeteren van de betrouwbaarheid en beschikbaarheid van de applicatie. HAProxy ondersteunt de implementatie van de gezondheidscontroles die de backend-servers controleren om na te gaan of hun gezondheidstoestand geschikt is voor gebruik.

Alleen de servers die de statuscontroles doorstaan, worden aan de rotatie toegevoegd. Op die manier wordt een server niet geselecteerd voor gebruik als deze de gezondheidscontrole niet doorstaat, waardoor de kans op downtime wordt geminimaliseerd. In dit artikel gaan we dieper in op hoe de gezondheidscontroles in HAProxy werken en wat er nodig is om een ​​effectieve gezondheidscontrole te implementeren. Laten we beginnen!

Wat zijn gezondheidscontroles in HAProxy

Bij het configureren van HAProxy is één taak het specificeren welke backend-servers u voor uw toepassing wilt gebruiken. Op die manier wordt het verkeer over de servers verdeeld om overbelasting van een server te voorkomen. Gezondheidscontroles helpen echter om vast te stellen dat een server alleen wordt geselecteerd om het verkeer af te handelen als dit in orde is.







Op elke server worden gezondheidscontroles uitgevoerd en alleen de servers die slagen, worden aan de rotatie toegevoegd voor gebruik bij de taakverdeling. De statuscontroles worden uitgevoerd door verzoeken, zoals TCP of HTTP, naar een vooraf gedefinieerd eindpunt op uw backend-server te sturen. De gezondheidsresultaten die door de backend-server worden teruggestuurd, bepalen de status ervan. De status van de server kan bijvoorbeeld UP of DOWN weergeven of een 'OK' 200-status verzenden die bevestigt dat de server in orde is.



Zorg er bij het configureren van de statuscontroles voor dat u een vooraf gedefinieerd eindpunt hebt dat u voor de statuscontroles kunt gebruiken. Er zijn verschillende opties die u kunt gebruiken om uw eindpunt in te stellen. U kunt bijvoorbeeld een statuscode of bericht retourneren, afhankelijk van de status van de server. Alle gezondheidscontroles worden gedefinieerd in de backend-sectie van uw HAProxy-configuratiebestand. Open het configuratiebestand en maak uw frontend-sectie.



$ sudo nano /etc/haproxy/haproxy.cfg

Hier is een eenvoudig voorbeeld van een frontend-sectie die poort 80 bindt, een statistiekenpagina instelt en de standaard backend specificeert.





De volgende stap is het maken van de backend-sectie. Hieronder volgen verschillende voorbeelden van hoe u een effectieve statuscheck in HAProxy kunt implementeren.



Voorbeeld 1: Implementeren van effectieve actieve gezondheidscontroles

Een eenvoudige manier om de gezondheidscontroles in HAProxy te implementeren is door de actieve gezondheidscontroles in te stellen. Met deze optie probeert HAProxy verbinding te maken met de server. Als er geen reactie wordt verzonden, wordt de server als ongezond beschouwd en wordt deze uit de rotatie verwijderd. De standaardmanier om de actieve gezondheidscontroles te implementeren is door het trefwoord “check” op elke serverregel toe te voegen, zodat HAProxy ze allemaal kan controleren.

Hoewel dit eerste voorbeeld werkt, is het niet de beste manier om de gezondheidscontroles te implementeren. Bovendien gebruikt het de standaardinstellingen. Het interval tussen de controles, gemarkeerd als inter, is bijvoorbeeld ingesteld op twee seconden. Door de daling wordt het aantal toegestane mislukte controles op drie gesteld. Om deze instellingen aan te passen, specificeert u de gewenste tussentijd en het aantal controles, zoals weergegeven in het volgende voorbeeld:

Voorbeeld 2: Implementatie van een HTTP Health Check

Bij een HTTP-gezondheidscontrole stuurt HAProxy een HTTP-verzoek naar alle servers met het trefwoord “check”. Op basis van het antwoord wordt de status van de server geconcludeerd. Voorbeelden van succesvolle serverreacties vallen in het bereik van 2xx of 3xx. Een antwoord zoals 200 OK betekent dat de server zich in een goede staat bevindt.

Voeg voor dit voorbeeld de regel “option httpchk” toe aan uw backend.

Voorbeeld 3: Werken met een GET-verzoek

HAProxy verzendt een GET-verzoek naar het pad “/” bij het maken van een HTTP-verzoek. Als u uw eindpunt echter in een ander pad hebt geconfigureerd, kunt u het URL-pad opgeven, bijvoorbeeld “/health”, en HAProxy zal het GET-verzoek ernaar sturen.

Op basis van uw eindpunt gebruikt de server het antwoord om de status van de server te bepalen. Zo implementeert u het:

Voorbeeld 4: Een GET-verzoekpad en antwoordstatus opgeven

Met een eindpunt kunt u opgeven welk succesvol antwoord u kunt verwachten van het GET-verzoek van het eindpunt om de status van de server te bepalen. Voor dit voorbeeld is ons GET-verzoekpad '/health' en we verwachten een responsstatus van 200 om te bevestigen dat de server in goede staat verkeert om de taakverdeling en andere taken uit te voeren.

Nadat u uw HAProxy-configuratiebestand hebt gewijzigd, start u HAProxy opnieuw op om de wijzigingen door te voeren.

Dat is het! U hebt de effectieve gezondheidscontroles op uw HAProxy geïmplementeerd. U kunt de statistiekenpagina openen of het logbestand controleren met de volgende opdracht om te bevestigen dat de statuscontroles werken zoals verwacht:

$ staart -f /var/log/haproxy.log

Conclusie

Een effectieve health check in HAProxy kunt u op verschillende manieren implementeren. De gezondheidscontroles zijn geïmplementeerd in de backend-sectie van het HAProxy-configuratiebestand, en dit bericht heeft verschillende voorbeelden gegeven van hoe je dit kunt aanpakken. Controleer jouw ideale werkwijze en voer comfortabel een effectieve gezondheidscontrole uit in HAProxy.