Balansiranje opterećenja najčešća je praksa distribucije dolaznog web prometa između više pozadinskih poslužitelja. To čini aplikaciju vrlo dostupnom čak i ako neki od poslužitelja iz nekog razloga propadnu. Uravnoteženje opterećenja povećava učinkovitost i pouzdanost web aplikacija. U istu se svrhu koristi HAProxy uravnoteživač opterećenja. To je najčešće korišten uravnoteživač opterećenja u industriji. Prema službenoj web stranici, HAProxy koriste vodeće tvrtke poput AWS, Fedora, Github i mnogih drugih.
HAProxy ili High Availability Proxy pruža rješenje za visoku dostupnost i proksiranje. Napisan je na jeziku C i radi na mrežnim i aplikacijskim slojevima TCP / IP modela. Najbolje je što ima besplatno izdanje za zajednicu i to je aplikacija otvorenog koda. Radi na operativnim sustavima Linux, FreeBSD i Solaris. Tu je i izdanje za poduzeće, ali ima cijenu.
U ovom ćemo vodiču vidjeti Kako instalirati HAProxy i konfigurirati poslužitelj za uravnoteženje opterećenja na Debianu 10.
Preduvjeti:
- „Sudo“ pristup svim strojevima i osnovno znanje o izvršavanju naredbi u Linux terminalu.
- Privatne IP adrese dodane su uravnoteživačima opterećenja i pozadinskim poslužiteljima.
- Debian 10 operativni sustav instaliran na svim strojevima.
Instaliranje HAProxy-a na Debian 10
Za naš vodič pretpostavit ćemo sljedeću konfiguraciju IP adrese:
- HAProxy uravnoteživač opterećenja 10.0.12.10
- Web poslužitelj1: IP adresa: 10.0.12.15
- Web poslužitelj2: IP adresa: 10.0.12.16
Korak 1. Ažurirajte spremište i pakete sustava Debian
Prvo pokrenite naredbe u nastavku na svim sustavima da biste ažurirali softverske pakete na najnoviji.
$ sudo apt ažuriranje$ sudo apt nadogradnja -y
Korak: 2 Instalirajte Nginx na pozadinskim poslužiteljima
Pripremite svoje pozadinske poslužitelje instaliranjem Nginx web poslužitelja na svaki. Također možete odabrati instaliranje drugih web poslužitelja poput apachea.
Da biste instalirali Nginx, pokrenite sljedeće naredbe na svakom pozadinskom poslužitelju u vašem okruženju:
$ sudo apt instalirati nginxKorak: 3 Nakon što se Nginx instalira na vaše pozadinske poslužitelje, pokrenite uslugu, kao što je prikazano u nastavku:
$ Sudo systemctl start nginxSAVJET: Također možemo upravljati nginx web poslužiteljem pomoću naredbe u nastavku:
$ sudo / etc / init.d / nginx "opcija"opcija: pokrenite ponovno učitavanje status ponovnog pokretanja zaustavljanje
Korak: 4 Stvorite prilagođene indeksne stranice u web mapi svakog Nginx web poslužitelja. To će nam pomoći da razlikujemo koji pozadinski poslužitelj služi za dolazne zahtjeve.
Na svakom web poslužitelju izvedite sljedeće zadatke:
Napravite sigurnosnu kopiju izvorne indeksne datoteke pomoću sljedeće naredbe:
$ sudo cp / usr / share / nginx / html / index.html / usr / share / nginx / html / index.html.origDodajte prilagođeni tekst u indeks.html datoteku. Dodamo IP adresu svakog web poslužitelja.
Za web poslužitelj 1:
$ sudo echo "Web poslužitelj 1:10.0.12.15 "| sudo tee / usr / share / nginx / html / index.htmlZa web poslužitelj 2:
$ sudo echo "Web poslužitelj 2: 10.0.12.16 "| sudo tee / usr / share / nginx / html / index.htmlTakođer možete koristiti vi editor ako vam je ugodnije. To je prikazano u nastavku:
$ sudo vi / usr / share / nginx / html / index.htmlKada se datoteka otvori, unesite tekst i spremite je.
Otvorite zadanu datoteku virtualnog hosta u direktoriju “/ etc / nginx / sites-available /”.
$ sudo nano / etc / nginx / sites-available / defaultSada unutar bloka poslužitelja promijenite korijensku direktivu iz “/ var / www / html” u “/ usr / share / nginx / html”.
Da biste provjerili Nginx konfiguraciju, pokrenite sljedeću naredbu:
$ sudo nginx -tKorak 5: Sada ponovo pokrenite uslugu pomoću naredbe:
$ sudo systemctl ponovno pokrenite nginxMožete provjeriti status nginxa pomoću sljedeće naredbe:
$ sudo systemctl status nginxKorak: 6 Da biste instalirali HAProxy na Debian 10 (Buster), pokrenite sljedeću naredbu na uravnoteživaču opterećenja.
$ sudo apt install haproxy -ySavjet: Jednom kada je instaliran HAProxy, njime možete upravljati putem init skripte. Za to postavite parametar "omogućeno" na 1 u "/ etc / default / haproxy" kao što je prikazano dolje:
$ sudo vi / etc / default / haproxyOmogućeno = 1
Sada se sljedeća opcija može koristiti s init skriptom:
$ sudo service haproxy “opcija."opcija: pokrenite ponovno učitavanje status ponovnog pokretanja zaustavljanje
Korak: 7 Sada konfigurirajte uravnoteživač opterećenja HAProxy uređivanjem zadane konfiguracijske datoteke haproxy, tj.e. “/ Etc / haproxy / haproxy.cfg ". Da biste uredili ovu datoteku, pokrenite sljedeću naredbu
$ sudo vi / etc / haproxy / haproxy.uspSavjet: Molimo napravite sigurnosnu kopiju izvorne datoteke kako bismo bili sigurni u slučaju da nešto pođe po zlu. Da biste izvršili sigurnosno kopiranje, upotrijebite sljedeću naredbu:
$ sudo cp / etc / haproxy / haproxy.cfg / etc / haproxy / haproxy.usp.origSada idite na kraj datoteke i uredite sljedeće podatke:
sučelje Local_Servervezati 10.0.12.10:80
način rada http
default_backend web poslužitelj
pozadinski web poslužitelj
način rada http
ravnoteža roundrobin
opcija forwardfor
http-zahtjev set-header X-Forwarded-Port% [dst_port]
http-request add-header X-Forwarded-Proto https ako ssl_fc
opcija httpchk HEAD / HTTP / 1.1rnHost: localhost
web poslužitelja1 10.0.12.15:80
poslužitelj web2 10.0.12.16:80
Bilješka: Ne zaboravite promijeniti IP adrese u gornjoj datoteci na onu koju ste dodali na svoje web poslužitelje.
Korak: 8 Provjerite konfiguracijsku sintaksu gornje datoteke sljedećom naredbom:
$ sudo haproxy -c -f / etc / haproxy / haproxy.uspAko sve krene kako treba, prikazat će se izlaz poput: „Konfiguracijska datoteka je valjana.”Ako dobijete bilo kakvu pogrešku u izlazu, ponovno provjerite svoju konfiguracijsku datoteku i ponovno je provjerite.
Korak: 9 Sada ponovo pokrenite uslugu HAProxy da biste primijenili promjene
$ sudo usluga haproxy ponovno pokretanjeTestiranje konfiguracije
Sada je vrijeme da provjerimo radi li naša postavka ispravno. U web-preglednik unesite IP sustava uravnoteživača opterećenja (U našem slučaju to je 10.0.12.10) i osvježavajte stranicu kontinuirano 2-4 puta kako biste provjerili radi li ispravljač opterećenja HAProxy. Trebali biste vidjeti različite IP adrese ili bilo koji drugi tekst koji ste unijeli u indeks.html kada nastavite osvježavati stranicu više puta.
Drugi način provjere je isključivanje jednog web poslužitelja izvan mreže i provjeravanje poslužuje li drugi web poslužitelj zahtjeve.
To je sve za sada! Pokušajte eksperimentirati s HAProxyjem da biste saznali više o tome kako to radi. Za e.g., možete isprobati:
- Integriranje različitih web poslužitelja pored nginxa.
- Promjena algoritma za uravnoteženje tereta u nešto drugo osim u kružno.
- Konfiguriranje provjere zdravstvenog stanja HAProxy kako bi se utvrdilo radi li pozadinski poslužitelj ili ne.
- Primjena ljepljivih sesija za povezivanje korisnika na isti pozadinski poslužitelj.
- Korištenje statistike HAProxy za dobivanje uvida o prometu na poslužiteljima.
HAProxy ima opsežnu dokumentaciju dostupnu i za izdanje zajednice HAProxy i za verziju HAProxy Enterprise. Istražite ovu dokumentaciju da biste dobili više uvida u poboljšanje performansi i pouzdanosti vašeg poslužiteljskog okruženja.
Ovaj je vodič uspješno izveden na Debianu 10 (Buster). Pokušajte instalirati HAProxy na druge distribucije bazirane na Debianu, poput Ubuntu, Linux Mint itd. Molimo vas da ne zaboravite podijeliti ovaj vodič s drugima.