Ebben a cikkben bemutatjuk az ütemező beállítását. HAProxy két szerverre telepített webszerverrel nginx (az Apache helyettesíthető). Minden esetben a CentOS-t használják operációs rendszerként.
HAProxy - kiszolgálószoftver, amely magas rendelkezésre állást és terheléselosztást biztosít a TCP és a HTTP alkalmazások számára, a bejövő kérelmek több szerverre történő elosztása révén. A HAProxy-t sok népszerű erőforráson használják, köztük a Twitter, Instagram, Github, Avito, amazon és mások.
A HAProxy külön kiszolgálóra van telepítve, amely elfogadja az ügyfélkéréseket és átirányítja azokat Nginx webszerverekre. Az általános rendszer architektúrát az alábbiakban mutatjuk be..
Tartalom:
- Az Nginx konfigurálása háttérkiszolgálón
- HAProxy terheléselosztó konfiguráció
- Haproxy.cfg konfigurációs fájl beállításai
- HAProxy statisztikai gyűjtemény
Az Nginx konfigurálása háttérkiszolgálón
Kezdjük azzal, hogy telepítjük és konfiguráljuk az Nginx-et webszervereinken, amelyek között a terhelés kiegyensúlyozott lesz. Telepítse az EPEL lerakatot és magát az nginx fájlt a yum használatával:
#yum install epel-release -y
#yum install nginx -y
A telepítést egyszerre két kiszolgálón hajtottam végre, mivel a kiszolgálók egymáshoz vannak konfigurálva (a parancsok párhuzamos végrehajtására több kiszolgálón az pdsh is használható).
Tovább a konfigurációs fájlokban nginx.conf Hangsúlyozzuk, hogy a kiszolgálóknak csak a HaProxy és a háttérkiszolgálók kéréseit kell feldolgozniuk:
1. háttérkiszolgáló:
kiszolgáló figyeljen aktuális_kiszolgáló_IP: 80 alapértelmezett kiszolgáló; IP_server_backend_server engedélyezése; engedélyezze az IP_haproxy; mindenkit tagadni; kiszolgáló_neve _; root / usr / share / nginx / html; # Töltse be az alapértelmezett szerverblokk konfigurációs fájljait. tartalmazzák az /etc/nginx/default.d/*.conf fájlt; hely /
2. háttérkiszolgáló:
kiszolgáló figyeljen aktuális_kiszolgáló_IP: 80 alapértelmezett kiszolgáló; IP_first_backend_server engedélyezése; engedélyezze az IP_haproxy; mindenkit tagadni; kiszolgáló_neve _; root / usr / share / nginx / html; # Töltse be az alapértelmezett szerverblokk konfigurációs fájljait. tartalmazzák az /etc/nginx/default.d/*.conf fájlt; hely /
Az nginx konfiguráció szokásos, csak most adtunk hozzá hallgassa meg az IP-t szerverek és zárt hozzáférés mindenki számára, kivéve az irányelveket használó szervereinket lehetővé és megtagad.
Ahhoz, hogy a webszerver működjön, a tűzfalen keresztül kell megnyitnia a kapcsolatokat a tűzfal vagy az iptable segítségével:
# tűzfal-cmd - tartós -add-service = http
# tűzfal-cmd-újratöltés
Végezzen tesztellenőrzést bármely háttér-kiszolgálón:
[root @ szerver ~] # göndör IP_vtorogo_servera
itt kell szereznie egy html dokumentumot
A szerver megadta a standard index nginx fájlt, ami azt jelenti, hogy a kiszolgálók kölcsönhatásba lépnek egymással.
Az ellenőrzés megkönnyítése érdekében megváltoztattam az indexfájl tartalmát az egyes háttérkiszolgálókon, hogy a tesztelés során egyértelműen láthassam a böngészőben, hogy melyik szerver dolgozta fel a kérelmet.
Az nginx indexfájl a / usr / share / nginx / html /.
HAProxy terheléselosztó konfiguráció
Indítsuk el a HAProxy telepítését és konfigurálását a kiszolgálón, amelyet terheléselosztóként fogunk használni.
Telepítse a HaProxy szoftvert, és hajtsa végre az alapvető beállításokat a kiegyensúlyozó számára.
#yum install epel-release -y
#yum install haproxy -y
Betöltött pluginek: a leggyorsabb tükör A tárolt tükör sebessége a gyorsítótárban lévő gazdafájlból epel / x86_64 / metalink ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Futás tranzakció Telepítés: haproxy-1.5.18-9.el7.x86_64 1/1 Ellenőrzés: haproxy-1.5.18-9.el7.x86_64 1/1 Telepítve: haproxy.x86_64 0: 1.5.18-9.el7 Komplett!
A HaProxy engedélyezéséhez meg kell adnia Engedélyezve = 1 fájlba / etc / default / haproxy:
#nano / etc / default / haproxy
Most menjünk tovább a HaProxy beállításához. A legegyszerűbb konfigurációnkban a kiegyensúlyozó szerver feldolgozza az összes http kérést, és azokat viszont elküldi a háttérkiszolgálóknak.
#nano /etc/haproxy/haproxy.cfg
napló / dev / log local0 chroot / var / lib / haproxy pidfile /var/run/haproxy.pid maxconn 4000 felhasználó haproxy csoport haproxy démon alapértelmezett mód http napló globális opció httplog opció újraküldés újból 3 időtúllépés http-kérés 10s időtúllépési sor 1m időtúllépés csatlakozás 10s időtúllépés kliens 1m időtúllépés szerver 1m időtúllépés http-folyamatosan élettartam 10 s időtúllépés ellenőrzése 10s maxconn 3000 előlapon www kötési kiegyenlítő IP: 80 alapértelmezett_backend nginx_pool háttérprogram nginx_pool egyensúly körkörös módban http server web1 first_backend_server IP: 80 web2 ellenőrző szerver 80 második_backend_server:
A konfiguráció mentése után ellenőrizze a szintaxist a következő paranccsal:
#haproxy -f /etc/haproxy/haproxy.cfg -c
Ha minden rendben van, hasonló eredményt kap:
A konfigurációs fájl érvényes
Ezután újra kell indítania a HaProxy alkalmazást, és hozzá kell adnia annak CentOS indítását. Nyissa meg a tűzfalon is a szükséges szabályokat.
#systemctl indítsa újra a haproxy-t
#systemctl lehetővé teszi a haproxy használatát
# tűzfal-cmd-tartós -add-service = http
# tűzfal-cmd-újratöltés
Ez befejezi a kiegyensúlyozó beállítását. Ellenőrizze az eredményt az IP-kiszolgáló HaProxy-val történő megnyitásával a böngészőben:
Mint láthatja, mindkét szerver egymás után továbbította a tartalmat, a kiegyenlítő működik.
Haproxy.cfg konfigurációs fájl beállításai
Vegyük figyelembe a HaProxy működési algoritmusainak fő példáit:
- roundrobin - az alapértelmezett algoritmus egymás után kéréseket küld a kiszolgálóknak. Példánkban csak egy ilyen módszert használtunk;
- leastconn - kiválasztja a legkevesebb aktív kapcsolattal rendelkező kiszolgálót. Ajánlatos olyan projektekre jelentkezni, amelyekben az ülésszakok hosszú ideig részt vehetnek;
- forrás - az IP-felhasználók alapján épített kivonat alapján választja ki a szervert. Ebben az üzemmódban ugyanaz az ügyfél mindig ugyanahhoz a szerverhez fog hozzáférni, ha IP-je változatlan marad;
Nézzünk át néhány paramétert a konfigurációs fájlban.
tömb globális:
- napló - tartsa be a / dev / log bejelentkezést, mentve a helyi0 értéket az "objektumra";
- chroot - biztonsági beállítások, amelyek zárolják a HAProxy-ot a megadott könyvtárban;
- maxconn - a versengő kapcsolatok maximális száma folyamatonként;
- felhasználó - a felhasználó, akinek a nevében a program elindul;
- csoport - felhasználói csoport, amelynek nevében a program elindul;
- démon - indítsa el a folyamatot démonként.
tömb alapértelmezett. Ez a szakasz ismerteti az azt követő összes többi szakasz alapértelmezett beállításait:
- log - jelzi, melyik naplót kell rögzíteni (globális ebben az esetben azt jelenti, hogy a globális szakaszban megadott paramétereket használják);
- mód - beállítja az interakciós protokollt, az alábbi értékek egyikét veszi figyelembe: tcp, http vagy health;
- próbálkozás - meghibásodás esetén a szerverhez való csatlakozás kísérleteinek száma;
- opció httplog - napló formátum, ha HAProxy-t használunk HTTP kérések proxikálásához;
- opció visszaszállítás - Lehetővé teszi a programnak, hogy kiszolgálóhiba esetén megszakítsa és újra hozzárendelje a munkamenetet;
- contimeout - a kiszolgálóval való sikeres kapcsolat várásának maximális ideje.
Számos paraméter is társul a különféle időtúllépésekhez.
HAProxy statisztikai gyűjtemény
Adja hozzá a statisztika blokkot a konfigurációs fájlhoz:
figyelési statisztika kötés: 10001 statisztika engedélyezése statisztika uri / haproxy_stats statisztika auth admin: admin
Leírás:
- köt - port, amelyen a statisztikai megtekintés működni fog;
- statisztika engedélyezéséhez - jelentéseket tartalmaz a statisztikákkal;
- statisztika uri - a statisztikai oldal címének beállítása;
- statisztika auth - bejelentkezés és jelszó.
Ezenkívül a haproxy_stats működéséhez meg kell nyitnia a tűzfalon korábban megadott portot:
tűzfal-cmd - tartós -add-port = 10001 / tcp
tűzfal-cmd-újratöltés
A HAProxy munkájáról szóló jelentések megtekintéséhez kattintson a linkre:
http: // hostname_haproxy: 10001 / haproxy_stats
Nyissa meg a kiegyensúlyozó címét a böngészőben, és indítsa el a spamet F5. A megadott link statisztikája megváltozik, a segédprogram működik.
Ez befejezi a beállításunkat. A cikkben megvizsgáltuk a HaProxy alapkonfigurációját. A tervünkben a HaProxy terheléselosztó szerver egyetlen hibapontvá válik. A konfiguráció hibatűrésének növelése érdekében hozzáadhat egy második HaProxy szervert, és a Keepalived használatával ellenőrizheti a kiszolgálók közötti elérhetőséget. Kapsz valami ilyesmit.
Sokkal több lehetőség létezik a HAProxy modul használatához, és mindig megtalálhat alkalmazást benne..