Izravnava obremenitve je najpogostejša praksa distribucije dohodnega spletnega prometa med več zalednih strežnikov. Zaradi tega je aplikacija zelo dostopna, tudi če nekateri strežniki iz nekega razloga propadejo. Uravnoteženje obremenitve povečuje učinkovitost in zanesljivost spletne aplikacije. Za isti namen se uporablja HAProxy uravnotežilec obremenitve. Je najpogosteje uporabljen uravnotežitelj obremenitve v industriji. Po uradni spletni strani HAProxy uporabljajo vodilna podjetja, kot so AWS, Fedora, Github in številna druga.
HAProxy ali High Availability Proxy ponuja rešitev za visoko razpoložljivost in proxy. Napisan je v jeziku C in deluje na omrežni in aplikacijski plasti modela TCP / IP. Najboljše je, da ima brezplačno skupnostno različico in je odprtokodna aplikacija. Deluje v operacijskih sistemih Linux, FreeBSD in Solaris. Obstaja tudi izdaja za podjetja, vendar ima svojo ceno.
V tem priročniku bomo videli Kako namestiti HAProxy in konfigurirati strežnik za uravnoteženje obremenitve v Debianu 10.
Pogoji:
- Dostop do vseh strojev in osnovno znanje o izvajanju ukazov v terminalu Linux.
- Zasebni naslovi IP, dodani v izravnalne in zaledne strežnike.
- Operacijski sistem Debian 10, nameščen na vseh strojih.
Namestitev HAProxy na Debian 10
Za naš vodnik bomo predvideli naslednjo konfiguracijo naslova IP:
- HAProxy uravnotežilec obremenitve 10.0.12.10
- Spletni strežnik1: Naslov IP: 10.0.12.15
- Spletni strežnik2: Naslov IP: 10.0.12.16
Korak 1. Posodobite sistemsko skladišče in pakete Debian
Najprej zaženite spodnje ukaze v vseh sistemih, da posodobite programske pakete na najnovejšega.
$ sudo apt posodobitev$ sudo apt nadgradnja -y
Korak: 2 Namestite Nginx na zaledne strežnike
Pripravite svoje zaledne strežnike tako, da na vsakega namestite spletni strežnik Nginx. Lahko se odločite tudi za namestitev drugih spletnih strežnikov, kot je apache.
Če želite namestiti Nginx, zaženite naslednje ukaze na vsakem zalednem strežniku v vašem okolju:
$ sudo apt namestite nginxKorak: 3 Ko je Nginx nameščen na vaših zalednih strežnikih, zaženite storitev, kot je prikazano spodaj:
$ Sudo systemctl zaženi nginxNASVET: S spletnim strežnikom lahko upravljamo tudi s spodnjim ukazom:
$ sudo / etc / init.d / nginx "možnost"možnost: zaženi znova naloži stanje ponovnega zagona stop
Korak: 4 Ustvarite indeksne strani po meri v spletni mapi vsakega spletnega strežnika Nginx. To nam bo pomagalo ločiti, kateri zaledni strežnik služi dohodnim zahtevam.
Na vsakem spletnem strežniku izvedite naslednje naloge:
Varnostno kopirajte izvirno indeksno datoteko z naslednjim ukazom:
$ sudo cp / usr / share / nginx / html / index.html / usr / share / nginx / html / index.html.origV indeks dodajte besedilo po meri.html datoteko. Dodajamo naslov IP vsakega spletnega strežnika.
Za spletni strežnik 1:
$ sudo echo "Spletni strežnik 1: 10.0.12.15 "| sudo tee / usr / share / nginx / html / index.htmlZa spletni strežnik 2:
$ sudo echo "Spletni strežnik 2: 10.0.12.16 "| sudo tee / usr / share / nginx / html / index.htmlUporabite lahko tudi urejevalnik vi, če se vam to zdi bolj prijetno. To je prikazano spodaj:
$ sudo vi / usr / share / nginx / html / index.htmlKo se datoteka odpre, vnesite besedilo in datoteko shranite.
Odprite privzeto datoteko navideznega gostitelja v imeniku “/ etc / nginx / sites-available /”.
$ sudo nano / etc / nginx / sites-available / defaultZdaj znotraj strežniškega bloka spremenite korensko direktivo iz “/ var / www / html” v “/ usr / share / nginx / html”.
Če želite preveriti konfiguracijo Nginx, zaženite naslednji ukaz:
$ sudo nginx -t5. korak: Zdaj znova zaženite storitev z ukazom:
$ sudo systemctl znova zaženite nginxStanje nginxa lahko preverite z naslednjim ukazom:
$ sudo systemctl status nginxKorak: 6 Če želite namestiti HAProxy na Debian 10 (Buster), zaženite naslednji ukaz na izravnalniku obremenitve.
$ sudo apt install haproxy -yNasvet: Ko je nameščen HAProxy, lahko upravljate HAProxy prek skripta init. Za to nastavite parameter »omogočeno« na 1 v »/ etc / default / haproxy«, kot je prikazano spodaj:
$ sudo vi / etc / default / haproxyOmogočeno = 1
Zdaj lahko s skriptom init uporabite naslednjo možnost:
$ sudo service haproxy “možnost."možnost: zaženi ponovno naloži stanje ponovnega zagona stop
Korak: 7 Zdaj konfigurirajte uravnotežilec obremenitve HAProxy z urejanjem privzete konfiguracijske datoteke haproxy, tj.e. “/ Etc / haproxy / haproxy.cfg ". Če želite urediti to datoteko, zaženite naslednji ukaz
$ sudo vi / etc / haproxy / haproxy.primNasvet: Prosimo, varnostno kopirajte izvirno datoteko, da bomo v primeru, da gre kaj narobe, na varnem. Za varnostno kopiranje uporabite naslednji ukaz:
$ sudo cp / etc / haproxy / haproxy.cfg / etc / haproxy / haproxy.prim.origZdaj pojdite na konec datoteke in uredite naslednje podatke:
frontend Local_Servervezati 10.0.12.10:80
način http
spletni strežnik default_backend
zaledni spletni strežnik
način http
ravnotežje roundrobin
možnost naprej
http-request set-header X-Forwarded-Port% [dst_port]
http-request add-head X-Forwarded-Proto https, če ssl_fc
možnost httpchk HEAD / HTTP / 1.1rnHost: localhost
strežnik web1 10.0.12.15:80
strežnik web2 10.0.12.16:80
Opomba: Ne pozabite spremeniti naslovov IP v zgornji datoteki na tiste, ki ste jih dodali v svoje spletne strežnike.
Korak: 8 Preverite konfiguracijsko sintakso zgornje datoteke z naslednjim ukazom:
$ sudo haproxy -c -f / etc / haproxy / haproxy.primČe gre vse v redu, se prikaže rezultat, kot je: »Konfiguracijska datoteka je veljavna.”Če pride do kakršne koli napake v izhodu, ponovno preverite svojo konfiguracijsko datoteko in jo znova preverite.
Korak: 9 Zdaj znova zaženite storitev HAProxy, da uveljavite spremembe
$ sudo service haproxy restartTestiranje konfiguracije
Zdaj je čas, da preverimo, ali naša nastavitev deluje pravilno. V spletni brskalnik vnesite IP sistema za uravnoteženje obremenitve (v našem primeru je 10.0.12.10) in stran 2–4 krat neprekinjeno osvežujte, da preverite, ali HAProxy uravnotežilec obremenitve deluje pravilno. Videli bi morali različne naslove IP ali kakršno koli besedilo, ki ste ga vnesli v indeks.html, če še naprej večkrat osvežite stran.
Drug način preverjanja je, da enega spletnega strežnika izključite brez povezave in preverite, ali drugi spletni strežnik izpolnjuje zahteve.
To je vse za zdaj! Poskusite eksperimentirati s HAProxy, če želite izvedeti več o tem, kako deluje. Za e.g., lahko poskusite:
- Integriranje drugega spletnega strežnika poleg nginxa.
- Spreminjanje algoritma za uravnoteženje obremenitve na kaj drugega kot na krožno.
- Konfiguriranje preverjanja stanja HAProxy, da ugotovite, ali zaledni strežnik deluje ali ne.
- Uporaba lepljivih sej za povezavo uporabnika z istim zalednim strežnikom.
- Uporaba statistike HAProxy za pridobitev vpogleda v promet na strežnikih.
HAProxy ima na voljo obsežno dokumentacijo tako za izdajo skupnosti HAProxy kot za različico HAProxy za podjetja. Raziščite to dokumentacijo, da dobite več vpogledov v izboljšanje zmogljivosti in zanesljivosti strežniškega okolja.
Ta priročnik je bil uspešno izveden na Debian 10 (Buster). Poskusite namestiti HAProxy na druge distribucije, ki temeljijo na Debianu, kot so Ubuntu, Linux Mint itd. Ne pozabite deliti tega vodnika z drugimi.