Imamo tri naprave. Na en strežnik bomo namestili HAproxy, na dva pa Apache. Naš strežnik HAproxy bo nato deloval kot izravnalnik obremenitve in razporedil obremenitev med spletne strežnike Apache.
Opomba: Postopek in ukazi, omenjeni v tej objavi, so bili preizkušeni Ubuntu 20.04 LTS (Focal Fossa). Isti postopek velja tudi za distribucijo Debian in Mint.
Podrobnosti o omrežju
Uporabili bomo tri strežnike Ubuntu; vsi v istem omrežju. Podrobnosti o naših strežnikih so naslednje:
Ime gostitelja: HAproxy, naslov IP: 192.168.72.157 (Frontend strežnik)Ime gostitelja: spletni strežnik1, naslov IP: 192.168.72.158 (stranski strežniki)
Ime gostitelja: spletni strežnik2, naslov IP: 192.168.72.159 (stranski strežniki)
Opomba: Na vseh strežnikih morate imeti privilegije sudo.
En stroj bomo konfigurirali kot izravnalnik obremenitve, druga dva pa kot spletna strežnika. Strežnik HAproxy bo naš prednji strežnik, ki bo prejemal zahteve uporabnikov in jih posredoval na dva spletna strežnika. Spletni strežniki bodo naši Backend strežniki, ki bodo prejemali te posredovane zahteve.
Takole je videti naša nastavitev:
Nastavitev spletnih strežnikov - Backend strežniki
V tem poglavju bomo nastavili dva spletna strežnika (spletni strežnik in spletni strežnik2) kot naši zaledni strežniki.
Na spletnem strežniku1 (192.168.72.158)
V spletnem strežniku izvedite spodnje korake. Imena gostiteljev in naslove IP zamenjajte z ustreznimi naslovi IP in imeni gostiteljev vaših spletnih strežnikov.
1. Konfigurirajte datoteko gostitelja
Vklopljeno spletni strežnik, uredite / etc / hosts mapa:
$ sudo nano / etc / hostsNato dodajte vnos imena gostitelja za HAproxy strežnik, kot sledi:
hostname-of-HAproxy IP-naslov-HAproxyV našem primeru bi bilo to:
HAproxy 192.168.72.1572. Nastavite spletni strežnik Apache
Zdaj namestite spletni strežnik Apache z uporabo spodnjega ukaza v terminalu. Našo objavo lahko obiščete tudi na Kako namestiti spletni strežnik Apache v Linux.
$ sudo apt namestite apache2Nato omogočite in zaženite storitev Apache z uporabo spodnjih ukazov v terminalu:
$ sudo systemctl omogoči apache2$ sudo systemctl zaženi apache2
Ustvarite indeksno datoteko za spletni strežnik z uporabo spodnjega ukaza v terminalu:
$ echo "zdravo! To je spletni strežnik1: 192.168.72.158
"| sudo tee / var / www / html / index.htmlČe se v vašem sistemu izvaja požarni zid, boste morali dovoliti promet Apache prek njega:
$ sudo ufw dovoli 80 / tcpNato znova naložite konfiguracije požarnega zidu:
$ ufw ponovno naložiZdaj poskusite dostopati do spletnega mesta v spletnem brskalniku s tipkanjem http: // čemur sledi naslov IP ali ime gostitelja vašega spletnega strežnika.
http: // ime gostitelja ali naslov IP
Lahko pa tudi preizkusite spletno stran z ukazom curl.
$ curlNa spletnem strežniku-2 192.168.72.159)
V drugem spletnem strežniku izvedite spodnje korake. Imena gostiteljev in naslove IP zamenjajte z ustreznimi naslovi IP in imeni gostiteljev vaših spletnih strežnikov.
1. Konfigurirajte datoteko gostitelja
V spletni strežnik2, uredite / etc / hosts mapa:
$ sudo nano / etc / hostsNato dodajte vnos imena gostitelja za HAproxy strežnik, kot sledi:
HAproxy 192.168.72.1572. Namestite spletni strežnik Apache
Zdaj namestite spletni strežnik Apache z uporabo spodnjega ukaza v terminalu.
$ sudo apt namestite apache2Nato omogočite in zaženite storitev Apache z uporabo spodnjih ukazov v terminalu:
$ sudo systemctl omogoči apache2$ sudo systemctl zaženi apache2
Ustvarite indeksno datoteko za spletni strežnik2 z uporabo spodnjega ukaza v terminalu:
$ echo "zdravo! To je spletni strežnik2: 192.168.72.159
"| sudo tee / var / www / html / index.htmlDovoli Apache v požarnem zidu:
$ sudo ufw dovoli 80 / tcpin nato znova naložite konfiguracije požarnega zidu:
$ ufw ponovno naložiZdaj poskusite dostopati do spletnega mesta v spletnem brskalniku s tipkanjem http: // čemur sledi naslov IP ali ime gostitelja.
http: // ime gostitelja ali naslov IP
Druga možnost je, da z ukazom curl preizkusite spletno stran.
$ curlZdaj so naši spletni strežniki Apache pripravljeni.
Nastavitev strežnika Frontend za uravnoteženje obremenitve HAproxy
V tem razdelku bomo nastavili izravnalnik obremenitve HAproxy za naš spletni strežniki. Ta strežnik HAproxy bo deloval kot prednji strežnik in sprejema dohodne zahteve strank.
Na HAproxy strežnik (192.168.72.157), izvedite spodnje korake za nastavitev izravnalnika obremenitve.
1. Konfigurirajte datoteko gostitelja
Uredite / etc / hosts datoteko z uporabo spodnjega ukaza v terminalu:
$ sudo nano / etc / hostsZa oba dodajte naslednje vnose v ime gostitelja Apač spletnih strežnikov skupaj z lastnim imenom gostitelja:
192.168.72.157 HAproksi192.168.72.158 spletni strežnik1
192.168.72.159 spletni strežnik2
Zdaj shranite in zaprite / etc / hosts mapa.
Namestitev HAproxy izravnalnika obremenitve
Zdaj bomo v tem koraku namestili HAproxy na enega od naših strežnikov Ubuntu (192.168.72.157). To storite tako, da posodobite apt z naslednjim ukazom v terminalu:
$ sudo apt-get posodobitevNato posodobite pakete z uporabo spodnjega ukaza:
$ sudo apt-get nadgradnjaZdaj namestite HAproxy z naslednjim ukazom v terminalu:
$ sudo sudo apt namestite haproxy
Ko je namestitev strežnika HAproxy končana, jo lahko potrdite z naslednjim ukazom v terminalu:
$ haproxy -vPrikazala vam bo nameščeno različico HAproxy v vašem sistemu, ki potrjuje, da je bila HAproxy uspešno nameščena.
Konfiguriranje HAproxy kot izravnalnika obremenitve
V naslednjem poglavju bomo HAproxy konfigurirali kot izravnalnik obremenitve. Narediti tako, uredite / etc / haproxy / haproxy.prim mapa:
$ sudo nano / etc / haproxy / haproxy.primV haproksi dodajte naslednje vrstice.cfg, ki nadomesti naslove IP z vašimi naslovi IP.
The frontend web-frontend v zgornjih konfiguracijskih vrsticah pove HAproxyju, da posluša dohodne zahteve na vratih 80 od 192.168.72.157 in jih nato posredujte zalednim strežnikom, konfiguriranim pod backend spletni zaledni. Med konfiguriranjem zamenjajte naslove IP z ustreznimi naslovi IP vaših spletnih strežnikov.
Konfiguriranje nadzora HAproxy
Z nadzorom HAproxy si lahko ogledate veliko informacij, vključno s stanjem strežnika, prenesenimi podatki, časom delovanja, hitrostjo sej itd. Če želite konfigurirati nadzor HAproxy, dodajte naslednje vrstice v konfiguracijsko datoteko na naslovu / etc / haproxy / haproxy.prim:
poslušaj statistikovezava 192.168.72.157: 8080
način http
možnost naprej
možnost httpclose
statistika omogoči
statistika show-legende
statistika osveži 5s
stats uri / stats
statistika področje Haproxy \ Statistika
stats auth kbuzdar: kbuzdar         # Prijava uporabnika in geslo za spremljanje
stats admin if TRUE
default_backend spletni zaledni
Zgornja konfiguracija omogoča HAproxy â € œstatistikaâ € strani z uporabo statistika direktivo in jo zavaruje z http osnovno preverjanje pristnosti z uporabniškim imenom in geslom, ki jih definira stats auth direktive.
Ko končate s konfiguracijami, shranite in zaprite haproksi.cfg.
Zdaj preverite konfiguracijsko datoteko z uporabo spodnjega ukaza v terminalu:
$ haproxy -c -f / etc / haproxy / haproxy.primNaslednji izhod kaže, da so konfiguracije pravilne.
Zdaj, da uporabite konfiguracije, znova zaženite storitev HAproxy:
$ sudo systemctl znova zaženite haproxy.storitevUstavil se bo in nato zagnal storitev HAproxy.
Če želite preveriti stanje storitve HAproxy, bi bil ukaz:
$ sudo systemctl status haproxy.storitevThe aktiven (teče) stanje v naslednjem izhodu kaže, da je strežnik HAproxy omogočen in deluje dobro.
Tu je še nekaj drugih ukazov za upravljanje strežnika HAproxy:
Če želite zagnati strežnik HAproxy, bi bil ukaz:
$ sudo systemctl start haproxy.storitevČe želite zaustaviti strežnik HAproxy, bi bil ukaz:
$ sudo systemctl stop haproxy.storitevČe želite začasno onemogočiti strežnik HAproxy, bi bil ukaz:
$ sudo systemctl onemogoči haproxy.storitevČe želite znova omogočiti strežnik HAproxy, bi bil ukaz:
$ sudo systemctl omogoči haproxy.storitevPreskusite HAproxy
Pred preskusom nastavitve HAproxy preverite, ali imate povezavo s spletnimi strežniki. Na strežniku HAproxy pingajte oba spletna strežnika po njihovih naslovih IP ali imenih gostiteljev.
$ ping ime gostitelja-ali-ip-naslovNaslednji izhod kaže, da lahko strežnik HAproxy doseže oba spletna strežnika.
Preizkusite HA Proxy s pomočjo spletnega brskalnika
Zdaj na strežniku HAproxy odprite kateri koli spletni brskalnik in vnesite http: // čemur sledi naslov IP strežnika HAproxy, ki je v našem primeru 192.168.72.157.
http: // 192.168.72.157Strežnik HAproxy bo alternativno zahtevo poslal na oba spletna strežnika po metodi krožno. To lahko preizkusite tako, da nekajkrat znova naložite spletno stran.
To je odgovor, ki smo ga prejeli, ko smo obiskali http: // 192.168.72.157 prvič:
To je odgovor, ki smo ga dobili, ko smo znova naložili spletno stran:
Namesto imena IP naslova strežnika HAproxy lahko uporabite tudi ime gostitelja.
Preizkusite HA Proxy z uporabo curl
Ukaz curl v Linuxu lahko uporabite tudi za preizkus nastavitve HAproxy. Odprite terminal in vnesite curl čemur sledi naslov IP ali ime gostitelja strežnika HAproxy.
$ curl 192.168.72.157ali
$ curl HAproxyNekajkrat zaženite ukaz curl in videli boste, kako se odziv izmenjuje med obema spletnima strežnikoma.
Namesto da večkrat zaženete ukaze, lahko za preskus strežnika HAproxy zaženete tudi naslednji enovrstni skript:
$ medtem ko je res; naredite curl 192.168.72.157; spanje 1; Končano
Testiranje nadzora HAproxy
Za dostop do strani za nadzor HAproxy vnesite http: // čemur sledi naslov IP / ime gostitelja strežnika HAproxy in vrata 8080 / stats:
http: // 192.168.72.157: 8080 / statistikaali
http: // HAproxy: 8080 / statsPrikaže se naslednje polje za preverjanje pristnosti. Enter uporabniško ime in geslo ste že nastavili v konfiguracijah in nato pritisnite v redu.
To je statistično poročilo za naš strežnik HAproxy.
Tam imate namestitev in konfiguracijo izravnalnika obremenitve HAproxy v sistemu Linux. Pravkar smo razpravljali o osnovnih nastavitvah in konfiguraciji HAproxy kot izravnalnika obremenitve za spletne strežnike Apache. Ogledali smo si tudi nekaj ukazov za upravljanje strežnika HAproxy. Na koncu smo preizkusili uravnoteženje obremenitve prek brskalnika in ukaz curl. Za več informacij obiščite uradno dokumentacijo HAproxy