Když nasadíte aplikaci na internet, dostupnost, škálovatelnost a výkon aplikace jsou velmi důležité pro lepší uživatelskou zkušenost. Existuje mnoho technologií, které zavádějí redundanci, jako je vyvažování zátěže, clustering a proxy.
HAProxy je bezplatný, open source a spolehlivý nástroj pro vyrovnávání zatížení určený pro weby s vysokou návštěvností. Zatížení vyrovnává příchozí provoz tím, že jej rozděluje na několik backendových serverů.
V tomto článku vám ukážeme, jak nainstalovat HAProxy na Rocky Linux 8.
Pro účely tohoto kurzu použijeme následující nastavení:
Server IP adresa
HAProxy 172.16.10.10
Backend1 172.16.10.11
Backend2 172.16.10.12
Předpoklady
- Server se systémem RockyLinux 8.
- Na serveru je nakonfigurováno heslo uživatele root.
Instalovat HAProxy
Ve výchozím nastavení je balíček HAProxy dostupný ve výchozím repozitáři Rocky Linux 8. Můžete jej nainstalovat pomocí následujícího příkazu:
dnf install haproxy -y
Po instalaci HAProxy spusťte službu HAProxy a povolte její spuštění při restartu systému:
systemctl start haproxy
systemctl enable haproxy
Konfigurace HAProxy
Dále budete muset upravit soubor /etc/haproxy/haproxy.cfg a upravit dvě sekce frontend a backend. V sekci Frontend budete muset definovat HAProxy IP její port, URI statistiky a název backendu. V sekci Backend budete muset definovat algoritmus vyvažování zátěže, název backendového serveru, IP adresy a port.
nano /etc/haproxy/haproxy.cfg
Upravte následující sekce:
frontend http_balancer bind 172.16.10.10:80 option http-server-close option forwardfor stats uri /haproxy?stats default_backend Apache_webservers backend apache_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server apache1 172.16.10.11:80 check server apache2 172.16.10.12:80 check
Po dokončení uložte a zavřete soubor, poté budete muset upravit soubor /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Odkomentujte následující řádky:
module(load="imudp") input(type="imudp" port="514")
Uložte a zavřete soubor a poté vytvořte soubor haproxy.conf pro rsyslog pomocí následujícího příkazu:
nano /etc/rsyslog.d/haproxy.conf
Přidejte následující řádky:
local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log
Dále spusťte službu rsyslog a povolte její spuštění při restartu systému:
systemctl start rsyslog
systemctl enable rsyslog
Nakonec restartujte službu HAProxy, aby se změny projevily:
systemctl restart haproxy
Stav služby HAProxy můžete také ověřit pomocí následujícího příkazu:
systemctl status haproxy
Měli byste vidět následující výstup:
? haproxy.service - HAProxy Load Balancer Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-08-03 03:10:37 EDT; 1min 16s ago Process: 44032 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 44036 (haproxy) Tasks: 2 (limit: 12524) Memory: 3.1M CGroup: /system.slice/haproxy.service ??44036 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid ??44111 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid Aug 03 03:10:36 RockyLinux8 systemd[1]: Starting HAProxy Load Balancer... Aug 03 03:10:37 RockyLinux8 systemd[1]: Started HAProxy Load Balancer.
Konfigurovat bránu firewall
Dále budete muset nakonfigurovat firewall na všech serverech a povolit port 80 přes firewall.
Pro povolení portu 80 můžete spustit následující příkaz:
firewall-cmd --permanent --add-port=80/tcp
Poté znovu načtěte službu firewall, aby se změny projevily.
firewall-cmd --reload
Konfigurace serverů backend
Dále budete muset nainstalovat server Apache na oba backend servery. Spuštěním následujícího příkazu nainstalujte server Apache.
dnf install httpd -y
Po instalaci serveru Apache spusťte službu Apache a povolte její spuštění při restartu systému:
systemctl start httpd
systemctl enable httpd
Dále budete muset upravit výchozí soubor index.html na obou backendových serverech.
Na prvním backendu upravte soubor index.html pomocí následujícího příkazu:
nano /usr/share/httpd/noindex/index.html
Odeberte všechny řádky a přidejte následující řádek:
Welcome to First Apache Web Server!
Po dokončení uložte a zavřete soubor.
Na druhém backendu upravte soubor index.html pomocí následujícího příkazu:
nano /usr/share/httpd/noindex/index.html
Odeberte všechny řádky a přidejte následující řádek:
Welcome to Second Apache Web Server!
Po dokončení uložte a zavřete soubor.
Ověřte HAProxy
V tomto okamžiku je HAProxy nakonfigurováno tak, aby předávalo všechny příchozí požadavky backendovým serverům na základě algoritmu pro vyrovnávání zátěže. Nyní je čas zkontrolovat, zda HAProxy funguje správně nebo ne.
Otevřete webový prohlížeč a zadejte IP HAProxy do adresy URL http://172.16.10.10 . Měli byste vidět svou první stránku webového serveru Apache:
Poté znovu obnovte stejnou stránku, měli byste vidět svou druhou stránku webového serveru Apache:
To potvrzuje, že HAProxy funguje podle očekávání a rozděluje provoz mezi dva backend servery.
Závěr
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali HAProxy load balancer na Rocky Linux 8. Nyní můžete implementovat HAProxy do produkčního prostředí, abyste dosáhli vysokého výkonu a škálovatelnosti.