GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat a nakonfigurovat nástroj pro vyrovnávání zatížení HAProxy na Ubuntu 20.04

Haproxy je oblíbený pro vyvažování zátěže kvůli jeho účinnosti, spolehlivosti a nízké kapacitě paměti a CPU. Vyvažování zátěže je běžné řešení pro horizontální distribuci webových aplikací mezi více hostitelů a zároveň poskytuje uživatelům jeden přístupový bod ke službě.

Je k dispozici pro instalaci na hlavních distribucích Linuxu. V této příručce se naučíme, jak nainstalovat a nakonfigurovat nástroj pro vyrovnávání zatížení HAProxy na Ubuntu 20.04.

Zkontrolujte také:

  • Jak nainstalovat a nakonfigurovat nástroj pro vyrovnávání zatížení HAProxy na Rocky Linux/Alma Linux 8
  • Jak nainstalovat a nakonfigurovat nástroj pro vyrovnávání zatížení HAProxy v Debianu 11

HAProxy Algoritmy pro vyvažování zátěže

Algoritmy vyvažování se používají k rozhodnutí, na který server na backendu se každé spojení přenese. Některé z užitečných možností zahrnují následující:

  • Roundrobin: Každý server se používá v tazích podle své váhy. Jedná se o nejplynulejší a nejspravedlivější algoritmus, kdy čas zpracování serverů zůstává rovnoměrně rozložen. Tento algoritmus je dynamický, což umožňuje upravovat váhy serveru za chodu.
  • Leastconn: Je vybrán server s nejnižším počtem připojení. Roundrobin se provádí mezi servery se stejnou zátěží. Použití tohoto algoritmu se doporučuje pro dlouhé relace, jako je LDAP, SQL, TSE atd., ale není příliš vhodný pro krátké relace, jako je HTTP.
  • První: První server s dostupnými připojovacími sloty přijme připojení. Servery jsou vybírány od nejnižšího číselného identifikátoru po nejvyšší, což je výchozí poloha serveru na farmě. Jakmile server dosáhne své hodnoty maxconn, použije se další server.
  • Zdroj: Zdrojová IP adresa je zahašována a vydělena celkovou váhou běžících serverů, aby se určilo, který server přijme požadavek. Tímto způsobem se stejná IP adresa klienta vždy dostane na stejný server, zatímco servery zůstanou stejné.

Obsah

  1. Zajištění aktuálnosti serveru
  2. Instalace HAProxy
  3. Konfigurace HAProxy jako nástroje pro vyrovnávání zatížení
  4. Testování nastavení
  5. Stránka statistik HAProxy chrání heslem

1. Zajištění aktuálnosti serveru

Než budete pokračovat, ujistěte se, že je server aktuální. K dosažení tohoto cíle použijte tento příkaz:

sudo apt update
sudo apt upgrade -y

2. Instalace Haproxy

Balíček poskytující haproxy je dostupný ve výchozím Debian Repos. Nainstalujte pomocí tohoto příkazu:

sudo apt install -y haproxy

Potvrďte instalaci tímto příkazem:

$ apt-cache policy haproxy
haproxy:
  Installed: 2.0.13-2ubuntu0.3
  Candidate: 2.0.13-2ubuntu0.3
  Version table:
 *** 2.0.13-2ubuntu0.3 500
        500 http://eu-west-3.ec2.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.0.13-2 500
        500 http://eu-west-3.ec2.archive.ubuntu.com/ubuntu focal/main amd64 Packages

3. Konfigurace HAProxy jako nástroje pro vyrovnávání zátěže

Abychom nakonfigurovali HAProxy jako load balancer, musíme mu sdělit, jaký druh připojení by měl naslouchat a kam by měla být připojení přenášena. To se provádí vytvořením konfiguračního souboru /etc/haproxy/haproxy.cfg s definujícími nastaveními.

Vyrovnávání zátěže na vrstvě 4

Při instalaci bude mít HAProxy již šablonu pro konfiguraci nástroje pro vyrovnávání zatížení. Otevřete konfigurační soubor pomocí textového editoru, já používám vim:

sudo vim /etc/haproxy/haproxy.cfg

Přidejte tento obsah ke konfiguraci naslouchacího rozhraní a backendového rozhraní, kde bude provoz vyrovnán zatížení.

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

backend http_back
   balance roundrobin
   server <server1 name> <private IP 1>:80 check
   server <server2 name> <private IP 2>:80 check

Nahraďte  tím, co chcete nazývat své servery na stránce statistik, a  soukromými IP adresami serverů, na které chcete přesměrovat webový provoz. Toto je konfigurace, kterou používám na svém serveru

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

backend http_back
   balance roundrobin
   server web_server_1 10.70.5.41:80 check
   server web_server_2 10.70.5.187:80 check

Výše uvedené definuje nástroj pro vyrovnávání zatížení vrstvy 4 s názvem front-endu http_front poslouchajícím číslo portu 80, který poté směruje provoz do výchozího backendu s názvem http_back. Dodatečné identifikátor URI statistik /haproxy?stats povolí stránku statistik na zadané adrese.

Vyrovnávání zátěže na vrstvě 7

Můžeme také nakonfigurovat nástroj pro vyrovnávání zatížení, aby fungoval na vrstvě 7. To je užitečné, když jsou části vaší webové aplikace umístěny na různých hostitelích. Toho lze dosáhnout podmíněním přenosu připojení například pomocí adresy URL.

Otevřete konfigurační soubor pomocí textového editoru, já používám vim:

sudo vim /etc/haproxy/haproxy.cfg

Poté přidejte tyto konfigurace

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 name> <private IP>:80 check
   server <server name> <private IP>:80 check

backend blog_back
   server <server name> <private IP>:80 check
   server <server name> <private IP>:80 check

Rozhraní frontend deklaruje pravidlo ACL s názvem url_blog, které platí pro všechna připojení s cestami začínajícími na /blog. Use_backend definuje, že připojení vyhovující podmínce url_blog by měla obsluhovat backend s názvem blog_back, zatímco všechny ostatní požadavky zpracovává výchozí backend.

Na zadní straně konfigurace nastaví dvě skupiny serverů, http_back jako dříve a novou nazvanou blog_back , které se servery konkrétně připojují k example.com/blog.

Po provedení konfigurací uložte soubor a restartujte HAProxy dalším příkazem.

sudo systemctl restart haproxy

Pokud se při spuštění zobrazí nějaké chyby nebo varování, zkontrolujte konfiguraci, zda neobsahuje překlepy, a poté zkuste restartovat znovu.

Konfigurace SSL

Pokud máte soubor soukromého klíče a soubor certifikátu, které chcete použít s HAProxy, zkombinujte je s tímto příkazem.

cat citizix.fullchain.pem citizix.key > citizix.pem

Poté nakonfigurujte HAProxy tak, aby na frontendu používala certifikát SSL.

frontend http_front
        bind *:80
        bind *:443 ssl crt /etc/letsencrypt/live/apps.citizix.com/citizix.pem 

4. Testování nastavení

S nakonfigurovaným a spuštěným HAProxy otevřete veřejnou IP svého serveru pro vyrovnávání zatížení ve webovém prohlížeči a zkontrolujte, zda jste správně připojeni k backendu. Parametr stats uri v konfiguraci aktivuje stránku statistik na definované adrese.

http://<Haproxy public IP>/haproxy?stats

Když načtete stránku statistik a všechny vaše servery se zobrazí zeleně, vaše konfigurace byla úspěšná!

Stránka statistik obsahuje užitečné informace, které vám pomohou sledovat vaše webové hostitele, včetně časů vzestupů a výpadků a počtu relací. Pokud je server uveden červeně, zkontrolujte, zda je server zapnutý a zda na něj můžete odeslat příkaz ping ze stroje pro vyrovnávání zatížení.

V případě, že váš nástroj pro vyrovnávání zatížení neodpovídá, zkontrolujte, zda připojení HTTP neblokuje brána firewall. Pomocí níže uvedeného příkazu také potvrďte, že HAProxy běží.

sudo systemctl status haproxy

5. Ochrana heslem stránky statistik HAProxy

Mít stránku statistik jednoduše uvedenou na předním konci je však veřejně přístupné pro kohokoli, což nemusí být tak dobrý nápad. Místo toho jej můžete nastavit na vlastní číslo portu přidáním příkladu níže na konec souboru haproxy.cfg soubor. Nahraďte uživatelské jméno a heslo něčím bezpečným.

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

Po přidání nové skupiny naslouchání odstraňte ze skupiny frontend starý odkaz na uri statistik. Po dokončení uložte soubor a znovu restartujte HAProxy.

sudo systemctl restart haproxy

Poté znovu otevřete nástroj pro vyrovnávání zatížení s novým číslem portu a přihlaste se pomocí uživatelského jména a hesla, které jste nastavili v konfiguračním souboru.

http://<load balancer public IP>:8181

Zkontrolujte, zda vaše servery stále hlásí vše zeleně, a poté ve webovém prohlížeči otevřete pouze IP vyrovnávání zátěže bez čísel portů.

http://<load balancer public IP>/

Pokud mají vaše backendové servery alespoň mírně odlišné vstupní stránky, všimnete si, že pokaždé, když stránku znovu načtete, dostanete odpověď od jiného hostitele.

Závěry

To je ono! V této příručce jsme se naučili, jak nainstalovat a nakonfigurovat HAProxy, aby provoz vyvažoval zatížení. To zvýší výkon a dostupnost vaší webové aplikace.


Ubuntu
  1. Jak nainstalovat a nakonfigurovat Algo VPN Server na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  3. Jak nainstalovat a nakonfigurovat Squid Proxy na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  2. Jak nakonfigurovat HAProxy load balancer

  3. Jak nainstalovat a nakonfigurovat HAProxy load balancer na Debian 11

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04