HaProxy uporabljajo priljubljena spletna mesta, kot so Tumblr, GitHub in StackOverflow. V tem priročniku vas bomo vodili skozi namestitev HAProxy v nastavitvah spletnih strežnikov, ki se poganjajo s pomočjo Nginxa.
Lab Setup
3 primerki strežnikov CentOS 7, kot je prikazano
Naslovi IP gostiteljaload_balancer 3.17.12.132
strežnik_01 3.19.229.234
strežnik_02 3.17.9.217
1. korak: Uredite datoteko / etc / hosts za izravnalnik obremenitve
Za začetek se prijavite v sistem za uravnoteženje obremenitve in spremenite datoteko / etc / hosts, da bo vključeval imena gostiteljev in naslove IP obeh spletnih strežnikov, kot je prikazano
$ vim / etc / hosts3.19.229.234 strežnik_01
3.17.9.217 strežnik-02
Ko končate, shranite spremembe in zapustite konfiguracijsko datoteko.
Zdaj se odpravite na vsak spletni strežnik in posodobite / etc / hosts datoteka z naslovom IP in imenom gostitelja izravnalnika obremenitve
3.17.12.132 izravnalnik obremenitveNato potrdite, da lahko iz strežnika_01 izpišete izravnalnik obremenitve
In prav tako od server_02
Prepričajte se tudi, da lahko strežnike pingujete iz izravnalnika obremenitve.
Odlično ! vsi strežniki lahko komunicirajo z izravnalnikom obremenitve!
2. korak: Namestite in konfigurirajte HA Proxy na izravnalniku obremenitve
Ker je HA Proxy zlahka na voljo v uradnem skladišču CentOS, ga bomo namestili z upraviteljem paketov yum ali dnf.
Toda kot vedno najprej posodobite sistem
# yum posodobitevNato namestite HA Proxy, kot je prikazano
# yum namestite haproxy
Po uspešni namestitvi se pomaknite do imenika haproxy.
# cd / etc / haproxyNajboljša praksa zahteva, da pred kakršnimi koli spremembami varnostno kopiramo katero koli konfiguracijsko datoteko. Torej varnostno kopirajte haproksi.prim datoteko s preimenovanjem.
# mv haproksi.cfg haproksi.prim.bakNato nadaljujte in odprite konfiguracijsko datoteko
vim haproksi.primPrepričajte se, da ste izvedli spremembo, kot je prikazano
#---------------------------------------------------------------------# Globalne nastavitve
#---------------------------------------------------------------------
globalno
dnevnik 127.0.0.1 local2 # Konfiguracija dnevnika
chroot / var / lib / haproxy
pidfile / var / run / haproxy.pid
maxconn 4000
uporabnik haproxy #Haproxy, ki se izvaja pod uporabnikom in skupino "haproxy"
skupina haproksi
demon
# vklopi statistiko unix vtičnico
stats socket / var / lib / haproxy / stats
#---------------------------------------------------------------------
# pogostih privzetih vrednosti, ki jih bodo imeli vsi odseki "poslušaj" in "zaledje"
# uporabite, če ni označeno v njihovem bloku
#---------------------------------------------------------------------
privzete vrednosti
način http
log global
možnost httplog
možnost dontlognull
možnost http-server-close
možnost naprej za razen 127.0.0.0/8
ponovno pošiljanje možnosti
ponovni poskusi 3
časovna omejitev http-zahteva 10s
čakalna vrsta 1m
prekinitev povezave 10s
timeout odjemalec 1m
timeout server 1m
časovna omejitev http-keep-alive 10s
preverjanje časovne omejitve 10s
maxconn 3000
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
poslušaj nadzor haproxy3 *: 8080 #Haproxy Monitoring se izvaja na vratih 8080
način http
možnost naprej
možnost httpclose
statistika omogoči
statistika show-legende
statistika osveži 5s
stats uri / stats #URL za spremljanje HAProxy
statistika področje Haproxy \ Statistika
stats auth Password123: Password123 # Uporabnik in geslo za prijavo na nadzorno ploščo
stats admin if TRUE
default_backend app-main #To je neobvezno za spremljanje zaledja
#---------------------------------------------------------------------
# FrontEnd Configuration
#---------------------------------------------------------------------
glavni vmesnik
vezava *: 80
možnost http-server-close
možnost naprej
default_backend app-main
#---------------------------------------------------------------------
# BackEnd round robin kot ravnotežni algoritem
#---------------------------------------------------------------------
backend app-main
ravnotežje roundrobin #Balance algoritem
možnost httpchk HEAD / HTTP / 1.1 \ r \ nHost: \ localhost
#Preverite, ali je strežniška aplikacija zagnana in je zdrava - 200 statusna koda
strežnik server_01 3.19.229.234: 80 preverite # Nginx1
strežnik server_02 3.17.9.217: 80 preverite # Nginx2
Spremenite ime gostitelja in naslove IP spletnih strežnikov, kot je navedeno v zadnjih dveh vrsticah. Shranite spremembe in zapustite.
Naslednji korak bo konfiguriranje Rsysloga, da bo lahko zapisoval statistiko HAProxy.
# vim / etc / rsyslog.confPrepričajte se, da ste razkomentirali spodnje vrstice, da omogočajo povezave UDP
$ ModLoad imudp$ UDPServerRun 514
Nato nadaljujte in ustvarite novo konfiguracijsko datoteko haproksi.conf
# vim / etc / rsyslog.d / haproksi.confPrilepite naslednje vrstice, shranite in zapustite
lokalno2.= info / var / log / haproxy-access.log #For dnevnik dostopalokalno2.obvestilo / var / log / haproxy-info.log #For Service Info - Backend, loadbalancer
Da spremembe začnejo veljati, znova zaženite demon rsyslog, kot je prikazano:
# systemctl znova zaženite rsyslogNato zaženite in omogočite HAProxy
# systemctl zaženi rsyslog# systemctl omogoči rsyslog
Preverite, ali se izvaja HAProxy
# systemctl status rsyslog
3. korak: Namestite in konfigurirajte Nginx
Zdaj je preostala le še namestitev Nginxa. Prijavite se v vsak strežnik in najprej posodobite sistemske pakete:
# yum posodobitevNaslednja namestitev EPEL (dodatni paketi za Enterprise Linux)
# yum namestite epel-releaseČe želite namestiti Nginx, zaženite ukaz:
# yum namestite nginxNato zaženite in omogočite Nginx
# systemctl zaženi nginx# systemctl omogoči nginx
Nato bomo indeks spremenili.html v obeh primerih, da dokaže ali simulira, kako je uravnoteževalnik obremenitve sposoben porazdeliti spletni promet med obema strežnikoma.
Za server_01
# echo "server_01. zdravo ! Dobrodošli v indeksu prvega spletnega strežnika.htmlZa server_02
# echo "server_02. zdravo ! Dobrodošli v indeksu drugega spletnega strežnika.htmlZa izvedbo sprememb znova zaženite Nginx
# systemctl znova zaženite nginx4. korak: Preizkus, ali deluje uravnotežilec obremenitve
Končno smo na točki, ko želimo preveriti, ali konfiguracija deluje. Torej, prijavite se v izravnalnik obremenitve in večkrat izvedite ukaz curl
# curl 3.17.12.132Na terminalu bi morali dobiti izmenični izhod, ki prikazuje vrednost indeksa.html iz strežnika_01 in strežnika_02
Zdaj pa preizkusimo z uporabo spletnega brskalnika. Prebrskajte naslov IP izravnalnika obremenitve
http: // load-balancer-IP-naslovNa prvi strani bo prikazana vsebina katerega koli spletnega strežnika
Zdaj osvežite spletno stran in preverite, ali prikazuje vsebino z drugega spletnega strežnika
Odlično ! Bilanca obremenitve enakomerno porazdeli promet IP med obema spletnima strežnikoma !
To zaključuje to vadnico o tem, kako lahko namestite in konfigurirate HAProxy na CentOS 8. Vaše povratne informacije bodo zelo cenjene.