GNU/Linux >> Znalost Linux >  >> Linux

Jak nakonfigurovat HAProxy load balancer

Přehled

Probereme kroky, jak nakonfigurovat HAProxy load balancer. HAProxy může běžet s instrukcemi round-robin a v režimu převzetí služeb při selhání, ale také může běžet s oběma současně, což zajišťuje HA (High Availability). Kromě spuštění HAProxy pouze v režimu round-robin vyžadují některé scénáře HA převzetí služeb při selhání, kdy chcete mít záložní server nebo servery pro hlavní servery, které obsluhují web nebo aplikaci pro spolehlivější prostředí HA a se snazší údržbou.

Kromě toho může HAProxy také běžet jako ssl průchod, který se používá k šifrování veškerého příchozího provozu na vaší infrastruktuře, který je zahrnut v tomto příspěvku (pomocí certbota a pojďme zašifrovat ssl.) V tomto příspěvku jsou uvedeny pokyny a konfigurace HAProxy pro scénáře, kdy instalujete HAProxy přímo na server (holý kov nebo VM), jinými slovy – ne do kontejneru.

Pokud vás také zajímá, jak přidat SSL do vašeho HAProxy, je to popsáno v tomto příspěvku. Můžeme také nakonfigurovat haproxy load balancer se šifrováním SSL/HTTPS a mít bezpečný provoz pro vyrovnávání zatížení.

Režim Round-robin

Algoritmus Round-robin je sada instrukcí pro rozdělení provozu rovným dílem (v tomto příkladu), což znamená, že pokud máte dva servery – oba servery budou přijímat provoz stejně nebo jinými slovy, round-robin zajistí, že oba servery získají stejné množství provozu a tímto způsobem zajistíte, že servery ani šířka pásma nebudou přetíženy.

Režim převzetí služeb při selhání

Jak již bylo zmíněno dříve, v režimu převzetí služeb při selhání přiřadíte HAProxy, který server bude primárním serverem, který bude přijímat provoz, a také záložním serverem, který převezme přijímající provoz v případě výpadku primárního serveru. To znamená, že když selže primární server, záložní server převezme a nahradí primární server, dokud nebude znovu online, čímž se zkrátí prostoje na minimum.

To je také užitečné, když je potřeba provést údržbu serveru, takže když spustíte aktualizaci a upgrade na jednom serveru nebo je třeba jej restartovat, druhý server bude spuštěn a převezme roli primárního serveru a bude pokračovat obsluhovat web/aplikaci.

Konfigurace nástroje pro vyrovnávání zatížení HAProxy

Konfigurace převzetí služeb při selhání

Jako příklad jsou použity adresy IP v níže uvedené konfiguraci. Konfigurace je docela přímočará. V souboru HAProxy cfg přidejte konfiguraci podobnou této vpravo pod výchozí konfiguraci:

frontend haproxybind 10.0.51.119:80mode httpdefault_backend test_sitebackend test_sitemode httpsserver testserver1 10.0.51.121:80 kontrola mezi 5s vzestup 3 pokles 2server test záložní pokles 2 10.0.51.120:80 kontrola záloha pokles 

Frontendová část konfigurace je HAProxy. Svažte HAProxy s jeho IP adresou a číslem portu (port služby). V tomto příkladu používáme port 80 pro HTTP. Pokud jste HAProxy veřejně vystaveni na internetu, použijte veřejnou IP adresu HAProxy.

Definujte pro haproxy frontend, že má backend, kde konfigurujeme a přidáváme servery.

V tomto příkladu jsme přidali dva servery pro backend haproxy. Testserver 1 je primární server a testserver2 je záložní server. Ujasníme si také přidané parametry na serverech:

testserver serveru1 10.0.51.121:80 kontrola mezi 5s vzestup 3 pokles 2 testserver serveru2 10.0.51.120:80 kontrola záloha mezi 5s vzestup 3 pokles 2

Na obou serverech jsme přidali intervaly online kontroly serveru. Pokud testserver1 přestane reagovat po 5 sekundách se 3 kontrolami (3 kontroly v 5sekundovém intervalu), bude označen jako offline a záložní server převezme kontrolu. Pokud se testovací server1 vrátí do režimu online, převezme kontrolu po 2 kontrolách.

Stejné kontrolní parametry jsou přidány pro záložní server.

Round-robin konfigurace

HAProxy má instrukce round-robin již integrované, takže v zálohované části konfigurace je pouze nutné přidat řádek config – balance roundrobin.

Jako v konfiguraci níže:

frontend haproxy bind 10.0.51.119:80 režim http default_backend test_site backend test_site balance roundrobinmode http server testserver1 10.0.51.121:80 kontrola mezi 5s vzestup 3 pokles 2 server testserver2 10.0.51.120:50 kontrola záloha 

Failover + round-robin

Zmínili jsme, že HAProxy lze nakonfigurovat pomocí algoritmu round-robin a mít také záložní server. Pro toto nastavení se doporučuje mít více serverů, primární servery, na které se má vyvážit příchozí provoz, a samostatný server pro převzetí služeb při selhání (záložní), který převezme v případě výpadku primárních serverů. Konfigurace pro tento druh nastavení by chtěla něco takového:

backend test_site balance roundrobin mode http server testserver1 10.0.51.121:80 kontrola mezi 5s vzestup 3 pokles 2 server testserver2 10.0.51.120:80 kontrola mezi 5s vzestup 3 pokles 2server kontrola záloha pokles 3 10.0.51.121:50 2

V této konfiguraci jsme tedy přidali třetí server, který jsme v HAProxy přiřadili, aby fungoval jako záložní server, zatímco první dva budou fungovat jako primární servery a HAProxy na nich bude vyrovnávat zátěž.

Shrnutí

Toto byly příklady, jak nakonfigurovat HAProxy load balancer. Toto bylo jen několik příkladů toho, jak se nejčastěji konfiguruje. Pokud vás také zajímá, jak přidat SSL do vašeho HAProxy, je to popsáno v tomto příspěvku. Doufám, že je pro vás příspěvek užitečný.


Linux
  1. Jak nakonfigurovat webový server Apache

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

  3. Jak nainstalovat a nakonfigurovat HAProxy load balancer na Rocky Linux/Alma Linux 8

  1. Jak nastavit Load Balancer na s0.d1.small BMC Server

  2. Jak nakonfigurovat HAProxy na serveru Debian 9 / Ubuntu 16.04

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

  1. Jak nakonfigurovat NGINX jako TCP/UDP Load Balancer v Linuxu

  2. Jak nakonfigurovat směrování založené na hostiteli na nástroji pro vyrovnávání zatížení aplikací AWS

  3. Jak vytvořit nástroj pro vyrovnávání zatížení sítě na AWS