This tutorial forklarer hvordan du setter opp en to-node lastbalansering med HAProxy og keepalived på CentOS 7. Den lastbalansering sitter mellom brukeren og to (eller flere) backend Apache webservere som holder det samme innholdet. Hvis en av dem er nede, vil alle forespørsler automatisk bli omdirigert til den gjenværende backend server. noe som betyr at brukerne vil ikke merke noen avbrudd i tjenesten.
For å konfigurere HA-Load balanceer, trenger du 2 virtuelle /fysiske servere for lastbalansering og 2 virtuelle /fysiske servere å laste-balanse. I tillegg til de 4 IP-adresser som kreves av serverne seg selv, er det nødvendig med en 5te virtuell IP-adresse (VIP). De to lastbalansering og VIP må være i samme nettverkssegment.
Piranha har blitt erstattet i RHEL7 /CentOS 7 med HAProxy og keepalived. I så fall vil HAProxy brukes som lastbalansering programvare, keepalived så høy tilgjengelighet løsning og apache programvare for å laste-balanse
Host detaljer:.
Last Balencer 2: haproxy2, IP: 192.168.0.102
Web Server 1: httpd1, IP: 192.168.0.103
Web Server 2: httpd2, IP: 192.168.0.104
Vi trenger også en virtuell IP-adresse som flyter mellom haproxy1 og haproxy2: vip, IP: 192.168.0.10
Her er adressering skjemaet valgt å skrive inn i /etc /hosts-filen for hver server
192.168.0.100 vip192.168.0.101 haproxy1192.168.0.102 haproxy2192.168.0.103 httpd1192.168.0.104 httpd2Here er litt diagram som viser vår setup:
delt IP = 192.168.0.100192.168.0.101 192.168 .0.102 192.168.0.103 192.168.0.104 ------- + ------- + ------- + ------- + | | | | + - + - + + - + - + + - + - + + - + - + | haproxy1 | | haproxy2 | | httpd1 | | httpd2 | + - + + - + + --- + + --- + haproxy haproxy 2 webservere (Apache) keepalived keepalived
HAProxy installasjon
På haproxy1 /haproxy2 servere, gjør du følgende:
Installer HAProxy pakken:
yum install -y haproxyOpen /etc/haproxy/haproxy.cfg filen ved hjelp av din favoritt editor, er Mine vi, erstatte linjen "frontend main *: 5000" med "frontend Hoved *: 80 "og kommentere ut linjen" use_backend statisk hvis url_static server app "og erstatte dem med følgende linjer"
Gå til slutten av samme fil, fjerne linjer som starter med. ":
server httpd1 192.168.0.103:80 checkserver httpd2 192.168.0.104:80 checkActivate ved oppstart og starte HAProxy tjeneste:
systemctl aktiver haproxysystemctl starte haproxyOpen /etc/firewalld/services/haproxy.xml fil og lim følgende linjer:
<? xml version = "1.0" encoding = "utf-8" >? < tjenesten > < kort > HAProxy < /kort > < beskrivelse > HAProxy lastbalansering < /beskrivelse > < port protokoll = "tcp" port = "80" /> < /tjenesten > Neste vi trenger å tildele riktige SELinux kontekst og filrettigheter til haproxy.xml filen:
cd /etc /firewalld /servicesrestorecon haproxy .xmlchmod 640 haproxy.xmlUpdate brannmurkonfigurasjonen:
brannmur-cmd --permanent --add-service = haproxyfirewall-cmd --reloadKeepalived installasjon
Deretter må vi å installere keepalived på haproxy1 og haproxy2
Installer keepalived pakken:
yum install -y keepalivedCreate en ny /etc/keepalived/keepalived.conf fil og lim følgende linjer:
vrrp_script chk_haproxy {script "killall -0 haproxy" # sjekk den haproxy processinterval 2 # hver 2 secondsweight 2 # tilsett 2 poeng hvis OK} vrrp_instance VI_1 {interface eth0 # grensesnitt til monitorstate MASTER # MASTER på haproxy1, BACKUP på haproxy2virtual_router_id 51priority 101 # 101 på haproxy1, 100 på haproxy2virtual_ipaddress {192.168.0.100 # virtuelle ip adresse} track_script {chk_haproxy}} Issue følgende kommandoer som Aktiver keepalived tjeneste på system oppstart:
systemctl aktiver keepalivedsystemctl starte keepalivedNext, trenger vi å sjekke tilstedeværelsen av VIP på haproxy1 serveren:
< pre> # ip en1: lo: < TILBAKEKOBL, UP, LOWER_UP > MTU 65536 qdisc noqueue staten UNKNOWNlink /loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00inet 127.0.0.1/8 omfang vert lovalid_lft evig preferred_lft foreverinet6 :: 1/128 omfang hostvalid_lft forever preferred_lft forever2: eth0: < kringkasting, fler, UP, LOWER_UP > MTU 1 500 qdisc pfifo_fast staten UP qlen 1000link /eter 52: 54: 00: F7: 2a: a9 brd ff: ff: ff: ff: ff: ffinet 192.168.0.101/24 brd 192.168.0.255 omfang global eth0valid_lft evig preferred_lft foreverinet 192.168. 0.100 /32 omfang global eth0valid_lft evig preferred_lft foreverinet6 fe80 :: 5054: ff: fef7: 2aa9 /64 omfang linkvalid_lft evig preferred_lft foreverApache installasjon
På httpd1 /httpd2 servere, følger Installer LAMP-server (Apache, MariaDB, PHP) På CentOS /RHEL /Scientific Linux 7 for å installere apache
Lag en fil som heter index.html i /var /www /html katalog på httpd1 server og lim inn følgende linje:.
Test httpd1Do samme operasjon på httpd2 . server, men erstatte "httpd1" med "httpd2" i index.html filen
Fra en annen server, tester konfigurasjonen:
yum install -y elinkselinks http: //192.168.0.100Cheers !!
Se deg neste gang !! Anmeldelser