Vi har opsat tre maskiner. Vi installerer HAproxy på en server og Apache-webserverne på to servere. Vores HAproxy-server fungerer derefter som en load balancer og distribuerer belastningen blandt Apache-webservere.
Bemærk: Proceduren og kommandoerne nævnt i dette indlæg er testet på Ubuntu 20.04 LTS (Focal Fossa). Den samme procedure gælder også for distributioner af Debian og Mint.
Netværksdetaljer
Vi bruger tre Ubuntu-servere; alle på det samme netværk. Detaljerne på vores servere er som følger:
Værtsnavn: HAproxy, IP-adresse: 192.168.72.157 (Frontend-server)Værtsnavn: webserver1, IP-adresse: 192.168.72.158 (Backend-servere)
Værtsnavn: webserver2, IP-adresse: 192.168.72.159 (Backend-servere)
Bemærk: Du skal have sudo-privilegier på alle serverne.
Vi konfigurerer en maskine som en load balancer og de to andre som webservere. HAproxy-serveren vil være vores front-end-server, der modtager anmodningerne fra brugerne og videresender dem til de to webservere. Webserverne vil være vores Backend-servere, der modtager de videresendte anmodninger.
Sådan ser vores opsætning ud:
Opsætning af webservere - Backend-servere
I dette afsnit opretter vi to webservere (webserver1 og webserver2) som vores backend-servere.
På webserver1 (192.168.72.158)
Udfør nedenstående trin på din webserver. Sørg for at udskifte værtsnavne og IP-adresser med de relevante IP-adresser og værtsnavne på dine webservere.
1. Konfigurer værtsfil
På webserver1, rediger / etc / hosts fil:
$ sudo nano / etc / hostsTilføj derefter værtsnavnet for HAproxy server som følger:
værtsnavn-af-HAproxy IP-adresse-af-HAproxyI vores scenario ville det være:
HAproxy 192.168.72.1572. Konfigurer Apache webserver
Installer nu Apache-webserver ved hjælp af nedenstående kommando i Terminal. Du kan også besøge vores indlæg på Sådan installeres Apache-webserveren på Linux.
$ sudo apt installere apache2Aktiver derefter og start Apache-tjenesten ved hjælp af nedenstående kommandoer i Terminal:
$ sudo systemctl aktiverer apache2$ sudo systemctl start apache2
Opret en indeksfil til webserver1 ved hjælp af nedenstående kommando i Terminal:
$ echo "Hej! Dette er webserver1: 192.168.72.158
"| sudo tee / var / www / html / index.htmlHvis en firewall kører på dit system, skal du tillade Apache-trafik gennem det:
$ sudo ufw tillader 80 / tcpGenindlæs derefter firewallkonfigurationerne:
$ ufw genindlæsPrøv nu at få adgang til webstedet i din webbrowser ved at skrive http: // efterfulgt af enten IP-adressen eller værtsnavnet på din webserver.
http: // værtsnavn-eller-IP-adresse
Alternativt kan du også bruge curl-kommandoen til at teste websiden.
$ krøllePå webserver-2 192.168.72.159)
Udfør nedenstående trin på din anden webserver. Sørg for at udskifte værtsnavne og IP-adresser med de relevante IP-adresser og værtsnavne på dine webservere.
1. Konfigurer værtsfil
I webserver2, rediger / etc / hosts fil:
$ sudo nano / etc / hostsTilføj derefter værtsnavnet for HAproxy server som følger:
HAproxy 192.168.72.1572. Installer Apache webserver
Installer nu Apache-webserver ved hjælp af nedenstående kommando i Terminal.
$ sudo apt installere apache2Aktiver derefter og start Apache-tjenesten ved hjælp af nedenstående kommandoer i Terminal:
$ sudo systemctl aktiverer apache2$ sudo systemctl start apache2
Opret en indeksfil til webserver2 ved hjælp af nedenstående kommando i Terminal:
$ ekko "Hej! Dette er webserver2: 192.168.72.159
"| sudo tee / var / www / html / index.htmlTillad Apache i firewallen:
$ sudo ufw tillader 80 / tcpog genindlæs derefter firewallkonfigurationer:
$ ufw genindlæsPrøv nu at få adgang til webstedet i din webbrowser ved at skrive http: // efterfulgt af enten IP-adressen eller værtsnavnet.
http: // værtsnavn-eller-IP-adresse
Alternativt kan du bruge curl-kommandoen til at teste websiden.
$ krølleNu er vores Apache-webservere klar.
Opsætning af HAproxy load balancer-Frontend-server
I dette afsnit opretter vi en HAproxy-belastningsafbalancering til vores webservere. Denne HAproxy-server fungerer som en frontend-server og accepterer indgående anmodninger fra klienter.
På den HAproxy server (192.168.72.157), skal du udføre nedenstående trin for at konfigurere load balancer.
1. Konfigurer værtsfil
Rediger / etc / hosts fil ved hjælp af nedenstående kommando i Terminal:
$ sudo nano / etc / hostsTilføj følgende værtsnavne poster for begge Apache webservere sammen med sit eget værtsnavn:
192.168.72.157 HAproxy192.168.72.158 webserver1
192.168.72.159 webserver2
Gem nu og luk / etc / hosts fil.
Installation af HAproxy load balancer
Nu i dette trin installerer vi HAproxy på en af vores Ubuntu-servere (192.168.72.157). For at gøre det skal du opdatere apt ved hjælp af følgende kommando i Terminal:
$ sudo apt-get opdateringOpdater derefter pakker ved hjælp af nedenstående kommando:
$ sudo apt-get opgraderingInstaller nu HAproxy ved hjælp af følgende kommando i Terminal:
$ sudo sudo apt installere haproxy
Når installationen af HAproxy-serveren er afsluttet, kan du bekræfte det ved hjælp af nedenstående kommando i Terminal:
$ haproxy -vDet viser dig den installerede version af HAproxy på dit system, der bekræfter, at HAproxy er blevet installeret.
Konfiguration af HAproxy som en belastningsafbalancering
I det følgende afsnit konfigurerer vi HAproxy som en belastningsafbalancering. For at gøre det, rediger / etc / haproxy / haproxy.cfg fil:
$ sudo nano / etc / haproxy / haproxy.cfgTilføj følgende linjer i haproxy.cfg-fil, der erstatter IP-adresserne med dine egne IP-adresser.
Det frontend web-frontend i ovenstående konfigurationslinjer beder HAproxy om at lytte til indgående anmodninger på port 80 af 192.168.72.157 og videresend dem derefter til backend-servere, der er konfigureret under bagende web-backend. Udskift IP-adresserne med de relevante IP-adresser på dine webservere, mens du konfigurerer.
Konfiguration af HAproxy-overvågning
Med HAproxy-overvågning kan du se en masse oplysninger, herunder serverstatus, data overført, oppetid, sessionshastighed osv. For at konfigurere HAproxy-overvågning skal du tilføje følgende linjer i konfigurationsfilen på / etc / haproxy / haproxy.cfg:
lyt statistikbinde 192.168.72.157: 8080
tilstand http
option frem til
valgmulighed httpclose
statistik aktiveres
statistik show-legender
statistik opdaterer 5s
statistik uri / statistik
statistik rige Haproxy \ Statistics
stats auth kbuzdar: kbuzdar        # Login bruger og adgangskode til overvågning
statsadministrator hvis SAND
default_backend web-backend
Ovenstående konfiguration muliggør HAproxy â € œstatistikâ € side ved hjælp af statistik direktivet og sikrer det med http grundlæggende godkendelse ved hjælp af brugernavnet og adgangskoden defineret af statsgodk direktiv.
Når du er færdig med konfigurationerne, skal du gemme og lukke haproxy.CFG-fil.
Bekræft nu konfigurationsfilen ved hjælp af nedenstående kommando i Terminal:
$ haproxy -c -f / etc / haproxy / haproxy.cfgFølgende output viser, at konfigurationerne er korrekte.
For at anvende konfigurationerne skal du genstarte HAproxy-tjenesten:
$ sudo systemctl genstart haproxy.serviceDet stopper og starter derefter HAproxy-tjenesten.
For at kontrollere status for HAproxy-tjenesten ville kommandoen være:
$ sudo systemctl status haproxy.serviceDet aktiv (kører) status i følgende output viser, at HAproxy-serveren er aktiveret og kører fint.
Her er nogle andre kommandoer til styring af HAproxy-serveren:
For at starte HAproxy-serveren ville kommandoen være:
$ sudo systemctl start haproxy.serviceFor at stoppe HAproxy-serveren ville kommandoen være:
$ sudo systemctl stop haproxy.serviceHvis du midlertidigt vil deaktivere HAproxy-serveren, er kommandoen:
$ sudo systemctl deaktiver haproxy.serviceFor at genaktivere HAproxy-serveren ville kommandoen være:
$ sudo systemctl aktiver haproxy.serviceTest HAproxy
Før du tester HAproxy-opsætningen, skal du sørge for, at du har forbindelse til webservere. Fra din HAproxy-server skal du pinge begge webservere enten efter deres IP-adresser eller værtsnavne.
$ ping værtsnavn-eller-ip-adresseFølgende output viser, at HAproxy-serveren kan nå begge webservere.
Test HA Proxy ved hjælp af en webbrowser
Åbn enhver webbrowser og skriv nu på din HAproxy-server http: // efterfulgt af HAproxy-serverens IP-adresse, som i vores tilfælde er 192.168.72.157.
http: // 192.168.72.157HAproxy-serveren sender alternativt anmodningen til begge webservere i en round-robin-metode. Du kan teste dette ved at genindlæse websiden et par gange.
Dette er svaret, vi modtog, da vi besøgte http: // 192.168.72.157 for første gang:
Dette er svaret, vi modtog, da vi genindlæste websiden:
Du kan også bruge værtsnavnet i stedet for HAproxy-serverens IP-adresse.
Test HA Proxy ved hjælp af krølle
Du kan også bruge curl-kommandoen i Linux til at teste HAproxy-opsætningen. Åbn terminalen, og skriv krølle efterfulgt af IP-adressen eller værtsnavnet på HAproxy-serveren.
$ krølle 192.168.72.157eller
$ curl HAproxyKør curl-kommandoen et par gange, og du vil se svaret skiftevis mellem begge webservere.
I stedet for at køre kommandoerne flere gange kan du også køre følgende enlinjescript for at teste HAproxy-serveren:
$ mens det er sandt; krølle 192.168.72.157; sove 1; Færdig
Test af HAproxy-overvågning
For at få adgang til HAproxy-overvågningssiden skal du skrive http: // efterfulgt af IP-adresse / værtsnavn på HAproxy server og port 8080 / stats:
http: // 192.168.72.157: 8080 / statistikeller
http: // HAproxy: 8080 / statistikFølgende godkendelsesfelt vises. Gå ind brugernavnet og adgangskode du har konfigureret tidligere i konfigurationerne, og tryk derefter på Okay.
Dette er statistikrapporten for vores HAproxy-server.
Der har du installation og konfiguration af HAproxy load balancer på Linux-systemet. Vi har netop diskuteret den grundlæggende opsætning og konfiguration af HAproxy som en load balancer for Apache webservere. Vi kiggede også på nogle kommandoer til styring af HAproxy-serveren. I sidste ende testede vi belastningsbalanceringen gennem browseren og curl-kommandoen. For mere information, besøg HAproxy officielle dokumentation