Nul nedetid server genstarter med HAProxy - 💡 Fix My Ideas

Nul nedetid server genstarter med HAProxy

Nul nedetid server genstarter med HAProxy


Forfatter: Ethan Holmes, 2019

HAProxy er et softwarebaseret HTTP-belastningsbalanceringsværktøj med høj tilgængelighed, som jeg har set at få en masse trækkraft i store serverklynger og cloud computing-miljøer. Jeg bruger det i øjeblikket som en del af et præ-bygget, klyngebillede, som en tredjepartsleverandør opretholder, og det har ytret mig nok, at jeg har begyndt at undersøge mulighederne yderligere. Fordi det er en software-løsning, giver det dig meget fleksibilitet til at tilpasse den konfiguration.

En af de pæne funktioner jeg stødte på er en konfiguration, der giver dig mulighed for at genstarte servere i en klynge, uden at en enkelt bruger oplever 404-fejl, nedetid eller tabte sessioner. Tricket er at bruge en iptables-regel til at have Apache reagere på to porte, sige 80 og 81. Apache kører virkelig på port 80, og derefter er port 81 konfigureret til at videresende til port 80. HAProxy er derefter konfigureret til at bruge applikationsserverens port 81, og den samme server i port 80 defineres som den varme backup.

Igvita.com blog har en god howto på at gøre netop dette:

I stedet for at angive en fysisk anden applikationsserver, skal vi definere vores sikkerhedskopieringsinstans for at være den nøjagtigt samme applikationsserver i hvert tilfælde, men med en mindre forskel: statusporten for hovedappserveren vil være forskellig fra den ene vi bruger på backupen.

Nu, hvis vi vil sætte serveren i vedligeholdelsestilstand, fjerner vi IPTables-reglen for den videresendte port og venter et par sekunder, så vores upstream HAProxy-instans genkender, at serveren ikke længere er tilgængelig for nye forbindelser - dette er nøglen, det betyder, at ingen klient er faldet i processen. Nu, når serveren er ude af rotation i HAProxy, kan vi gøre en yndefuld genstart, tilføj IPTables-reglen tilbage i, og vi er live!

Hvad er cool er, at uden nogen omkonfiguration på proxyen, kan du trække en maskine offline graciøst. Du kan bare deaktivere porten iptables porten, HAProxy vil bemærke, at port 81 gik offline og begynde at sende eksisterende brugere til port 80 med deres nuværende cookies. I virkeligheden er det nøjagtigt samme Apache-instans, så al sessionsinformation forbliver intakt. Nye sessioner sendes alle til dine andre servere, og du kan vente, indtil ingen er ved at bruge vedligeholdelsesmodusen, før du tager den offline.

HAProxy-nul-nedetid genstarter med HAPRoxy Official HAProxy Documentation (se afsnit 4.2, soft-stop ved hjælp af backup servere)



Du Kan Være Interesseret

The Cybernetics of Knitting

The Cybernetics of Knitting


Penang Hosts Open Innovation Konkurrence for malaysiske producenter

Penang Hosts Open Innovation Konkurrence for malaysiske producenter


Maker Spotlight: Marco Antonio Attisani

Maker Spotlight: Marco Antonio Attisani


Denne Custom Machine 3D udskriver utrolige keramiske skulpturer

Denne Custom Machine 3D udskriver utrolige keramiske skulpturer