Installéiert den HAProxy Lastbalancer op CentOS

D'Iwwersetzung vum Artikel gouf um Virowend vum Start vum Cours virbereet "Linux Administrator. Virtualiséierung a Clustering"

Installéiert den HAProxy Lastbalancer op CentOS

Load Balancing ass eng gemeinsam Léisung fir d'horizontal Skaléierung vun Webapplikatiounen iwwer verschidde Hosten wärend de Benotzer en eenzege Punkt vum Zougang zum Service ubitt. HAProxy ass eng vun de populäersten Open Source Load Balancing Software déi och héich Disponibilitéit a Proxy Funktionalitéit ubitt.

HAProxy beméit sech d'Ressourceverbrauch ze optimiséieren, den Duerchsatz ze maximéieren, d'Äntwertzäit ze minimiséieren an d'Iwwerlaaschtung vun enger individueller Ressource ze vermeiden. Et kann op enger Rei vu Linux Verdeelungen installéiert ginn, wéi CentOS 8, op déi mir an dësem Guide konzentréieren, souwéi Systemer Debian 8 и Ubuntu 16.

Installéiert den HAProxy Lastbalancer op CentOS

HAProxy ass besonnesch gëeegent fir Websäite mat ganz héije Traffic a gëtt dofir dacks benotzt fir d'Zouverlässegkeet an d'Leeschtung vu Multi-Server Webservice Konfiguratiounen ze verbesseren. Dëse Guide skizzéiert d'Schrëtt fir HAProxy als Lastbalancer op engem CentOS 8 Cloud Host opzestellen, deen dann de Traffic op Äre Webserver routert.

Als Viraussetzung fir bescht Resultater sollt Dir op d'mannst zwee Webserver an e Laaschtbalancéierungsserver hunn. Webserver mussen op d'mannst e Basis Webservice wéi nginx oder httpd lafen fir d'Laaschtbalancéierung tëscht hinnen ze testen.

Installéiert HAProxy op CentOS 8

Well HAProxy eng séier evoluéierend Open Source Applikatioun ass, ass d'Verdeelung verfügbar fir Iech an de Standard CentOS Repositories vläicht net déi lescht Versioun. Fir déi aktuell Versioun erauszefannen, fuert de folgende Kommando:

sudo yum info haproxy

HAProxy bitt ëmmer dräi stabil Versioune fir ze wielen: déi zwee rezentst ënnerstëtzte Versiounen an eng drëtt, méi al Versioun déi nach ëmmer kritesch Updates kritt. Dir kënnt ëmmer déi lescht stabil Versioun kucken, déi op der HAProxy Websäit opgezielt ass, an dann entscheeden mat wéi enger Versioun Dir wëllt schaffen.

An dësem Guide wäerte mir déi lescht stabil Versioun 2.0 installéieren, déi am Moment vum Schreiwen vum Guide nach net an de Standardrepositories verfügbar war. Dir musst et aus der ursprénglecher Quell installéieren. Awer als éischt, kontrolléiert ob Dir déi néideg Konditioune erfëllt hutt fir de Programm erofzelueden an ze kompiléieren.

sudo yum install gcc pcre-devel tar make -y

Luet de Quellcode erof mam Kommando hei ënnen. Dir kënnt kucken ob et eng méi nei Versioun verfügbar ass HAProxy Download Säit.

wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz

Wann den Download fäerdeg ass, extrahéiert d'Dateien mat dem Kommando hei ënnen:

tar xzvf ~/haproxy.tar.gz -C ~/

Gitt an den ausgepackten Quellverzeichnis:

cd ~/haproxy-2.0.7

Dann kompiléiere de Programm fir Äre System:

make TARGET=linux-glibc

A schlussendlech, installéiert HAProxy selwer:

sudo make install

HAProxy ass elo installéiert, awer et erfuerdert e puer zousätzlech Manipulatioune fir et ze funktionéieren. Loosst eis weider d'Software a Servicer hei ënnen opbauen.

HAProxy fir Äre Server opzestellen

Füügt elo déi folgend Verzeichnisser a Statistikdatei fir d'HAProxy Entréen derbäi:

sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy 
sudo touch /var/lib/haproxy/stats

Erstellt e symbolesche Link fir d'Binaeren, fir datt Dir HAProxy Kommandoen als normale Benotzer ausféiere kënnt:

sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

Wann Dir e Proxy op Äre System als Service wëllt addéieren, kopéiert d'haproxy.init Datei aus Beispiller an Äre /etc/init.d Verzeichnis. Änneren d'Datei Permissiounen sou datt de Skript leeft, an dann de systemd Daemon nei starten:

sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload

Dir musst och de Service erlaben automatesch nei ze starten wann de System ufänkt:

sudo chkconfig haproxy on

Fir d'Bequemlechkeet ass et och recommandéiert en neie Benotzer derbäi ze ginn fir HAProxy ze lafen:

sudo useradd -r haproxy

Duerno kënnt Dir d'installéiert Versiounsnummer nach eng Kéier iwwerpréiwen mat dem folgenden Kommando:

haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/

An eisem Fall sollt d'Versioun 2.0.7 sinn, wéi am Beispillerausgang uewen gewisen.

Schlussendlech ass d'Standard Firewall am CentOS 8 zimlech restriktiv fir dëse Projet. Benotzt déi folgend Kommandoen fir erfuerderlech Servicer z'erméiglechen an d'Firewall zréckzesetzen:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload

Load Balancer Setup

HAProxy opzemaachen ass e relativ einfache Prozess. Wesentlech, alles wat Dir maache musst ass HAProxy ze soen wéi eng Verbindungen et soll nolauschteren a wou se se weiderginn.

Dëst gëtt gemaach andeems Dir eng Konfiguratiounsdatei /etc/haproxy/haproxy.cfg erstellt mat definéierende Astellungen. Dir kënnt iwwer HAProxy Konfiguratiounsoptioune liesen op der Dokumentatioun Säit, wann Dir méi doriwwer wësse wëllt.

Belaaschtung an der Transportschicht (Schicht 4)

Loosst d'mat der Basis Setup ufänken. Erstellt eng nei Configuratiounsdatei, zum Beispill benotzt vi mam Kommando hei drënner:

sudo vi /etc/haproxy/haproxy.cfg

Füügt déi folgend Sektiounen un d'Datei. Ersetzen Servernumm wat soll Är Serveren op der Statistik Säit Opruff, an privat_ip - privat IP Adresse vun de Serveren op déi Dir de Webverkéier dirigéiere wëllt. Dir kënnt privat IP Adressen kontrolléieren op der UpCloud Kontrollpanel an op der Tab Privaten Netz am Menü Network.

global
   log /dev/log local0
   log /dev/log local1 notice
   chroot /var/lib/haproxy
   stats timeout 30s
   user haproxy
   group haproxy
   daemon

defaults
   log global
   mode http
   option httplog
   option dontlognull
   timeout connect 5000
   timeout client 50000
   timeout server 50000

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

Dëst definéiert eng Transport Layer Laaschtbalancer (Layer 4) extern genannt http_front lauschteren op port 80, déi dann Verkéier un engem Standard Backend genannt http_back weider. Zousätzlech Statistiken /haproxy?stats verbënnt d'Statistik Säit mat der spezifizéierter Adress.

Verschidde Belaaschtungsalgorithmen.

Serveren an der Backend Sektioun spezifizéieren erlaabt HAProxy dës Serveren ze benotzen fir Belaaschtung no engem Round-Robin Algorithmus wa méiglech.

Balancéiere Algorithmen gi benotzt fir ze bestëmmen op wéi ee Server am Backend all Verbindung weidergeleet gëtt. Hei sinn e puer vun den nëtzlechen Optiounen:

  • Roundrobin: All Server gëtt am Tour no sengem Gewiicht benotzt. Dëst ass de glatten a fairsten Algorithmus wann d'Veraarbechtungszäit vun de Serveren gleichméisseg verdeelt bleift. Dësen Algorithmus ass dynamesch, wat erlaabt datt d'Gewiicht vum Server op der Flucht ugepasst gëtt.
  • Leastconn: de Server mat de mannste Verbindunge gëtt ausgewielt. Round Robin gëtt tëscht Servere mat der selwechter Laascht gemaach. Dësen Algorithmus ze benotzen ass recommandéiert fir laang Sessiounen wéi LDAP, SQL, TSE, etc., awer et ass net ganz gëeegent fir kuerz Sessiounen wéi HTTP.
  • Éischten: Den éischte Server mat verfügbare Verbindungsplazen kritt d'Verbindung. Serveren sinn aus dem niddregsten numeresch ID op déi héchste ausgewielt, déi Standard op de Server Positioun am Bauerenhaff. Wann e Server maxconn erreecht, gëtt de nächste Server benotzt.
  • Source: D'Quell IP Adress gëtt gehasht a gedeelt duerch d'Gesamtgewiicht vun de lafen Serveren fir ze bestëmmen wéi ee Server d'Ufro kritt. Op dës Manéier wäert déi selwecht Client IP Adress ëmmer op dee selwechte Server goen, während d'Server d'selwecht bleiwen.

Laaschtbalancéierung op Applikatiounsniveau opsetzen (Layer 7)

Eng aner verfügbar Optioun ass e Laaschtbalancer ze konfiguréieren fir op der Applikatiounsschicht (Schicht 7) ze lafen, wat nëtzlech ass wann Deeler vun Ärer Webapplikatioun op verschiddene Hosten lokaliséiert sinn. Dëst kann erreecht ginn andeems d'Transmissioun vun der Verbindung gedréckt gëtt, zum Beispill duerch URL.

Öffnen d'HAProxy Konfiguratiounsdatei mat engem Texteditor:

sudo vi /etc/haproxy/haproxy.cfg

Dann konfiguréieren d'Frontend a Backend Segmenter wéi am Beispill hei ënnen:

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

backend blog_back
   server server_name3 private_ip3:80 check

De Frontend deklaréiert eng ACL-Regel genannt url_blog déi op all Verbindunge mat Weeër ugeet, déi mat /blog ufänken. Use_backend spezifizéiert datt Verbindungen, déi dem url_blog Zoustand passen, solle vun engem Backend mam Numm blog_back zerwéiert ginn, an all aner Ufroe ginn vum Standard Backend gehandhabt.

Op der Backend Säit setzt d'Konfiguratioun zwou Gruppe vu Serveren op: http_back, wéi virdrun, an en neien genannt blog_back, deen d'Verbindungen op example.com/blog geréiert.

Nodeems Dir d'Astellunge geännert hutt, späichert d'Datei an nei start HAProxy mam folgenden Kommando:

sudo systemctl restart haproxy

Wann Dir Warnungen oder Fehlermeldungen während dem Startup kritt, kontrolléiert Är Konfiguratioun fir si a gitt sécher datt Dir all déi néideg Dateien an Ordner erstallt hutt, probéiert dann erëm nei ze starten.

Test de Setup

Wann HAProxy konfiguréiert ass a leeft, öffnen d'ëffentlech IP Adress vum Lastbalancer Server an engem Browser a kontrolléiert ob Dir richteg mam Backend verbonne sidd. De Statistik Uri Parameter an der Konfiguratioun erstellt eng Statistik Säit op der spezifizéierter Adress.

http://load_balancer_public_ip/haproxy?stats

Wann Dir d'Statistik Säit lued, wann all Är Server gréng weisen, da war de Setup erfollegräich!

Installéiert den HAProxy Lastbalancer op CentOS

D'Statistik Säit enthält e puer nëtzlech Informatioun fir Är Webhoster ze verfolgen, dorënner Up / Down Zäit an Zuel vun Sessiounen. Wann de Server rout markéiert ass, vergewëssert Iech datt de Server ageschalt ass an datt Dir et vun der Lastbalancermaschinn kënnt pingelen.

Wann Äre Lastbalancer net reagéiert, gitt sécher datt HTTP Verbindungen net vun enger Firewall blockéiert ginn. Gitt och sécher datt HAProxy funktionnéiert mam Kommando hei ënnen:

sudo systemctl status haproxy

D'Statistik Säit mat engem Passwuert schützen

Wéi och ëmmer, wann d'Statistik Säit einfach um Frontend opgezielt ass, dann ass se fir jiddereen op ze gesinn, wat vläicht net eng gutt Iddi ass. Amplaz kënnt Dir et eng personaliséiert Portnummer zouginn andeems Dir d'Beispill hei ënnen um Enn vun Ärer haproxy.cfg Datei bäidréit. Ersetzen Benotzernumm и Passwuert fir eppes sécher:

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy Statistics
   stats auth username:password

Nodeems Dir eng nei Nolauschterergrupp bäigefüügt hutt, läscht déi al Statistik Uri Link aus der Frontend Grupp. Wann Dir fäerdeg sidd, späichert d'Datei a restart HAProxy.

sudo systemctl restart haproxy

Da öffnen de Lastbalancer erëm mat der neier Portnummer a loggt Iech mat dem Benotzernumm a Passwuert un, deen Dir an der Konfiguratiounsdatei uginn hutt.

http://load_balancer_public_ip:8181

Vergewëssert Iech datt all Är Server nach ëmmer gréng sinn an dann just de Lastbalancer IP opmaachen ouni Portnummeren an Ärem Browser.

http://load_balancer_public_ip/

Wann Dir op d'mannst eng Varietéit vu Landungssäiten op Äre Back-End Server hutt, mierkt Dir datt all Kéier wann Dir d'Säit nei lued, kritt Dir eng Äntwert vun engem anere Host. Dir kënnt verschidde Balancealgorithmen an der Konfiguratiounssektioun probéieren oder auschecken komplett Dokumentatioun.

Fazit: HAProxy Load Balancer

Gratulatioun fir Ären HAProxy Loadbalancer erfollegräich opzestellen! Och mat engem Basis Laaschtbalancéierungsopstellung kënnt Dir d'Performance an d'Disponibilitéit vun Ärer Webapplikatioun wesentlech verbesseren. Dëse Guide ass just eng Aféierung fir d'Laaschtbalancéierung mat HAProxy, wat fäeg ass vill méi wéi dat wat am Quick Setup Guide ofgedeckt ka ginn. Mir recommandéieren experimentéieren mat verschiddene Konfiguratiounen benotzt extensiv Dokumentatioun, verfügbar fir HAProxy, a fänkt dann un d'Laaschtbalancéierung fir Äert Produktiounsëmfeld ze plangen.

Andeems Dir verschidde Hosten benotzt fir Äre Webservice mat Kappraum ze schützen, kann de Lastbalancer selwer nach ëmmer e Punkt vum Ausfall presentéieren. Dir kënnt eng héich Disponibilitéit weider verbesseren andeems Dir eng schwiewend IP tëscht multiple Lastbalancer installéiert. Dir kënnt méi doriwwer gewuer ginn an eisem Artikel iwwer schwiewend IP Adressen op UpCloud.

Méi iwwer de Cours "Linux Administrator. Virtualiséierung a Clustering"***

Source: will.com

Setzt e Commentaire