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 2Na 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álohaFailover + 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 2V 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