Instalace nástroje pro vyrovnávání zátěže na serveru Linux, vyberte softwarový balancer (HAProxy nebo Nginx), nainstalujte jej pomocí balíčku vaší distribuce manager, nakonfigurujte frontendový a backendový pool s kontrolami stavu a SSL, otevřete porty firewallu 80/443 a poté otestujte failover. Pro vysokou dostupnost přidejte druhý uzel a virtuální IP adresu s Keepalived.
V tomto podrobném návodu se naučíte, jak nainstalovat Load Balancer na Linuxový server pomocí HAProxy a Nginx, nakonfigurovat kontroly stavu a ukončení SSL, nasadit vysokou dostupnost s Keepalived, posílit zabezpečení, monitorovat výkon a vyhnout se běžným chybám. Pokyny jsou srozumitelné pro začátečníky, ale zároveň technicky přesné a vycházejí z reálných zkušeností s hostingem.
Co je to Load Balancer (a proč je důležitý)?

Vyvažovač zátěže (load balancer) distribuuje příchozí provoz mezi více aplikačních serverů, čímž se zlepšuje spolehlivost, rychlost a škálovatelnost. V Linuxu jsou oblíbenými open-source řešeními HAProxy (vysoce výkonná L4/L7 proxy) a Nginx (webový server a reverzní L7 proxy). Můžete vyvažovat HTTP/HTTPS (vrstva 7) nebo raw TCP (vrstva 4), přidávat kontroly stavu, perzistenci relace a odlehčení SSL.
Pro koho je tento průvodce určen
Tato příručka je určena pro vývojáře, správce systémů a majitele webů, kteří chtějí nastavit systémový vyvažovač zátěže v Linuxu pro webové aplikace, API, WordPress nebo mikroslužby. Předpokládá základní znalost příkazového řádku v Linuxu a přístup k příkazu sudo.
Možnosti vyvažování zátěže v Linuxu
Výběr správného nástroje závisí na vašem profilu provozu, funkcích a provozních preferencích.
- HAProxy (doporučeno): Vynikající výkon, bohaté kontroly stavu, lepivost, pokročilé směrování, TLS, pozorovatelnost.
- Nginx (otevřený zdrojový kód): Skvělý jako reverzní proxy/L7 balancer, jednoduchá konfigurace, silný ekosystém; pasivní kontroly stavu ihned po vybalení.
- IPVS/LVS (prostřednictvím služby keepalived): Vyvažování zátěže na úrovni jádra (Layer 4) pro velmi vysokou propustnost; méně funkcí L7.
Pro většinu webových úloh začněte s HAProxy nebo Nginx. Pokud potřebujete miliony souběžných připojení s minimální režií a jednoduchou logikou L4, zvažte LVS/IPVS.
Předpoklady
- Linuxový server: Ubuntu 22.04/24.04 nebo RHEL/AlmaLinux/Rocky 8/9.
- Přístup root/sudo a základní znalosti sítí.
- Alespoň dva backendové aplikační servery pro vyvážení provozu.
- DNS záznam odkazující na veřejnou IP adresu vašeho load balanceru (nebo plovoucí/virtuální IP adresu v nastaveních HA).
- Přístup firewallu k otevřeným portům 80/443 (a 8404/9000 pro statistiky, volitelné).
Rychlé rozhodnutí: HAProxy vs. Nginx
- Pokud potřebujete pokročilé kontroly stavu, podrobné metriky, tabulky s pevnými hodnotami nebo náročné odlehčení SSL/TLS, zvolte HAProxy.
- Pokud dáváte přednost známému webovému serveru + proxy stacku nebo jej již používáte pro statický obsah a ukládání do mezipaměti, zvolte Nginx.
Instalace HAProxy na Ubuntu/Debian
Pro instalaci použijte příkaz apt a poté nakonfigurujte frontendy/backendy, kontroly stavu a volitelné ukončení SSL.
sudo apt update
sudo apt install -y haproxy
# Enable HAProxy at boot
sudo systemctl enable haproxy
# Verify version
haproxy -v
Základní vyvažování zátěže HTTP s round-robin a kontrolami stavu:
# /etc/haproxy/haproxy.cfg
global
log /dev/log local0
log /dev/log local1 notice
maxconn 50000
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5s
timeout client 50s
timeout server 50s
option http-server-close
option redispatch
retries 3
frontend fe_http
bind *:80
mode http
option forwardfor
default_backend be_app
backend be_app
mode http
balance roundrobin
option httpchk GET /health
http-check expect status 200
server app1 10.0.0.11:80 check
server app2 10.0.0.12:80 check
listen stats
bind *:8404
mode http
stats enable
stats uri /stats
stats refresh 10s
sudo haproxy -c -f /etc/haproxy/haproxy.cfg # syntax check
sudo systemctl restart haproxy
sudo systemctl status haproxy --no-pager
Přidejte HTTPS (ukončení SSL) pomocí Let's Encrypt nebo vlastního balíčku certifikátů:
# Concatenate fullchain + private key into a single PEM (PEM must include key)
sudo mkdir -p /etc/haproxy/certs
sudo cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem | sudo tee /etc/haproxy/certs/example.com.pem > /dev/null
sudo chmod 600 /etc/haproxy/certs/example.com.pem
# Update haproxy.cfg to add HTTPS frontend
frontend fe_https
bind *:443 ssl crt /etc/haproxy/certs/example.com.pem alpn h2,http/1.1
mode http
redirect scheme https code 301 if !{ ssl_fc }
option forwardfor
http-response set-header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
default_backend be_app
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl reload haproxy
Volitelné: povolit trvalé relace pro stavové aplikace (např. starší PHP relace):
backend be_app
mode http
balance roundrobin
cookie SRV insert indirect nocache
option httpchk GET /health
server app1 10.0.0.11:80 check cookie s1
server app2 10.0.0.12:80 check cookie s2
Instalace HAProxy na RHEL/AlmaLinux/Rocky
sudo dnf install -y haproxy
sudo systemctl enable haproxy
sudo systemctl start haproxy
# SELinux: allow HAProxy to make outbound connections if needed
sudo setsebool -P haproxy_connect_any 1
# Firewalld: open HTTP/HTTPS and stats
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-port=8404/tcp --permanent
sudo firewall-cmd --reload
Instalace Nginxu jako nástroje pro vyrovnávání zátěže (Ubuntu/RHEL)
Nginx je skvělý pro vyvažování vrstvy 7 a reverzní proxying. Ve výchozím nastavení používá pasivní kontroly stavu (přepnutí na záložní server při výskytu chyb v upstreamu).
# Ubuntu/Debian
sudo apt update && sudo apt install -y nginx
sudo systemctl enable nginx
# RHEL family
sudo dnf install -y nginx
sudo systemctl enable --now nginx
sudo firewall-cmd --add-service=http --add-service=https --permanent
sudo firewall-cmd --reload
Vytvořte blok pro upstream a server pro vyvažování zátěže HTTP:
# /etc/nginx/conf.d/lb.conf
upstream app_backend {
least_conn;
server 10.0.0.11:80 max_fails=3 fail_timeout=30s;
server 10.0.0.12:80 max_fails=3 fail_timeout=30s;
keepalive 64;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://app_backend;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
location = /health {
access_log off;
add_header Content-Type text/plain;
return 200 "OK";
}
}
sudo nginx -t
sudo systemctl reload nginx
Pro HTTPS nainstalujte certifikáty pomocí Certbotu nebo vašeho poskytovatele, případně ukončete TLS na Nginxu a přepošlete obyčejný HTTP do backendů.
Vysoká dostupnost: Přidání virtuální IP adresy pomocí Keepalived
Abyste se vyhnuli selhání z jediného bodu, nasaďte dva uzly vyrovnávače zátěže (LB1 a LB2) a mezi nimi pomocí VRRP (Keepalived) přesuňte virtuální IP adresu (VIP). Pokud LB1 selže, LB2 automaticky převezme kontrolu.
# Install Keepalived
# Ubuntu/Debian
sudo apt install -y keepalived
# RHEL family
sudo dnf install -y keepalived
# Allow binding to VIP before assignment (recommended on the LB that runs HAProxy/Nginx)
echo "net.ipv4.ip_nonlocal_bind = 1" | sudo tee /etc/sysctl.d/99-nonlocalbind.conf
sudo sysctl --system
Příklad konfigurace Keepalived (použití různých priorit na každém uzlu; vyšší priorita je lepší):
# /etc/keepalived/keepalived.conf (LB1 - MASTER)
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass StrongSecret123
}
virtual_ipaddress {
203.0.113.50/32 dev eth0
}
track_script {
chk_haproxy
}
}
vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
weight -30
}
# /etc/keepalived/keepalived.conf (LB2 - BACKUP)
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass StrongSecret123
}
virtual_ipaddress {
203.0.113.50/32 dev eth0
}
track_script {
chk_haproxy
}
}
vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
weight -30
}
sudo systemctl enable --now keepalived
ip addr show dev eth0 | grep 203.0.113.50 # VIP should appear on MASTER
# Open VRRP (protocol 112) if your firewall filters it (most clouds allow by default)
Nasměrujte své záznamy DNS A/AAAA na VIP. Otestujte přepnutí služeb při selhání zastavením HAProxy nebo Keepalived na LB1; VIP by se měla během několika sekund přesunout na LB2.
Bezpečnostní kalení
- Firewall: Povolte pouze 80/443 (a 22 z vaší IP adresy). Omezte koncové body statistik podle IP adresy nebo autorizace.
- TLS: Používejte moderní šifry, povolte HTTP/2, HSTS, sešívání OCSP a automatické obnovování Let's Encrypt.
- Záhlaví: Nastavte X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Content-Security-Policy (jak to vaše aplikace umožňuje).
- Nejmenší privilegium: Spouštějte služby bez oprávnění root, kde je to podporováno; udržujte balíčky aktualizované.
- SELinux/AppArmor: Pokračujte v vynucování a nastavte požadované booleovské hodnoty (např. haproxy_connect_any).
Monitorování a protokolování
- HAProxy: Povolit koncový bod statistik a exportér Prometheus (haproxy_exporter). Záznam do syslogu, analýza pomocí ELK nebo Loki.
- Nginx: Záznamy o přístupu/chybách a také stub_status nebo nginx-exporter pro Prometheus.
- Syntetické šeky: Monitorování uptime na VIP a backendech.
- Kapacita: Sledujte CPU, paměť, deskriptory souborů a počet připojení.
Testování vyrovnávače zátěže
- Základní dosažitelnost: curl -I http://example.com nebo https://example.com
- Přeposílání hlaviček: curl -I -H „Hostitel: example.com“ http://VIP
- Distribuce: Dočasně přidejte na každý backend záhlaví odpovědi pro identifikaci serverů a poté aktualizujte.
- Zatížení: ab -n 1000 -c 50 https://example.com nebo siege -c50 -t1M https://example.com
- Přepnutí při selhání: Zastavte jeden backend; provoz by se měl přesouvat bez chyb.
# Quick troubleshooting helpers
sudo ss -ltnp | grep -E "80|443|8404"
journalctl -u haproxy -f
journalctl -u nginx -f
journalctl -u keepalived -f
curl -I http://127.0.0.1:8404/stats
nginx -t && haproxy -c -f /etc/haproxy/haproxy.cfg
Časté chyby (a jejich řešení)
- Neshoda SSL: Ujistěte se, že je v HAProxy PEM správné pořadí celého řetězce a klíčů; po obnovení znovu načtěte.
- Kontroly stavu selhaly: Backendy musí zpřístupnit koncový bod s hodnotou 200 OK (např. /health). Pokud je veřejný, chraňte ho interně.
- Zaseknuté relace nefungují: Potvrďte vložení souboru cookie a zda jej aplikace akceptuje; vyhněte se ukládání vrstev do mezipaměti a odstraňování souborů cookie.
- Proxy hlavičky: Vždy přeposílejte hlavičky Host a X-Forwarded-*, aby URL adresy aplikací a detekce HTTPS byly správné.
- Bloky firewallu: Otevřené porty v operačním systému a skupině cloudového zabezpečení. Mezi LB musí probíhat VRRP (proto 112).
- Chyby navazování VIP: Nastavte net.ipv4.ip_nonlocal_bind=1 na uzlech, které spouštějí proxy před připojením VIP.
Scénáře skutečného světa
- WordPress ve velkém měřítku: Ukončete TLS na HAProxy, ukládejte statické datové zdroje do mezipaměti v Nginxu za ním nebo v CDN a povolte pevné relace pouze v případě, že vaše úložiště relací PHP není centralizované (lepší: Redis pro relace).
- Mikroslužby API: Používejte HAProxy s routingem založeným na cestě nebo hostiteli do více backendů. Přidejte omezení rychlosti a jističe pomocí tabulek s fixními parametry.
- Nasazení s nulovými prostoji: Přidejte nové backendové uzly, vypusťte staré (nastavte váhu na 0 nebo zakažte) a poté je po dokončení připojení odstraňte.
YouStable Tip: Infrastruktura, která zjednodušuje vyvažování zátěže
Pokud nechcete manage každý kousek sám, YouStableJe cloudový VPS s dedikovaným serverem Díky virtuálním procesorům (vCPU), velké šířce pásma a volitelným plovoucím IP adresám je používání clusterů HAProxy/Nginx snadno a efektivně. Náš tým podpory vám může sdělit osvědčené postupy pro SSL, zabezpečení a vysokou dostupnost bez závislosti na dodavateli.
Shrnutí optimalizované pro vyhledávače: Jak nainstalovat Load Balancer na Linuxový server
- Vyberte nástroj: HAProxy (pokročilá L4/L7) nebo Nginx (reverzní proxy L7).
- Nainstalujte přes apt/dnf a povolte službu.
- Konfigurace frontendu: 80/443 s kontrolami stavu, hlavičkami a ukončením SSL.
- Definujte backendy: Serverový fond s kontrolami a volitelnými lepivými relacemi.
- Zajistit: Zvyšte zabezpečení TLS, firewallu a administrátorských koncových bodů.
- Škála a HA: Přidejte druhý LB a ponechte si VIP Keepalived.
- Monitorování a testování: Metriky, protokoly a syntetické kontroly.
Často kladené otázky: Instalace Load Balanceru na Linuxový server
Co je lepší pro vyvažování zátěže v Linuxu: HAProxy nebo Nginx?
Pro většinu produkčních prostředí nabízí HAProxy bohatší kontroly stavu, pokročilé směrování a podrobné metriky. Nginx je vynikající, pokud jej již používáte jako Webový server a vyžadují jednoduché vyvažování L7. Oba dobře zvládají vysokou návštěvnost; vyberte na základě potřeb funkcí a znalosti týmu.
Jaký je rozdíl mezi vyvažováním zátěže na vrstvě 4 a vrstvě 7?
Vrstva 4 (TCP/UDP) přeposílá připojení bez kontroly HTTP. Je rychlá a efektivní (např. IPVS, HAProxy v režimu TCP). Vrstva 7 rozumí HTTP/HTTPS, což umožňuje směrování na základě cesty, manipulaci se záhlavími, soubory cookie a ukončení SSL. Pro webové aplikace, které potřebují inteligentnější směrování, použijte L7.
Jak přidám SSL do mého Linuxového vyrovnávače zátěže?
Ukončete TLS na úrovni load balanceru pomocí Let's Encrypt nebo certifikátů vydaných poskytovatelem. V HAProxy použijte PEM obsahující fullchain a privátní klíč. V Nginx nastavte ssl_certificate a ssl_certificate_key. Vynuťte silné šifry, HTTP/2 a HSTS a automatizujte obnovu.
Jak mohu zajistit vysokou dostupnost nástroje pro vyrovnávání zátěže?
Nasaďte alespoň dva uzly pro vyrovnávání zátěže a přiřaďte virtuální IP adresu pomocí Keepalived/VRRP. Nasměrujte DNS na VIP. Pokud primární LB selže, záloha automaticky převezme kontrolu. Zajistěte, aby oba uzly sdílely certifikáty a konfiguraci prostřednictvím automatizace.
Potřebuji pro aplikace WordPress nebo PHP fixed sessions?
Preferujte centralizované relace (Redis/Memcached), aby jakýkoli backend mohl obsloužit jakýkoli požadavek. Pokud to není možné, povolte jako dočasné řešení sticky sessions v HAProxy (cookie) nebo Nginx (ip_hash). Dlouhodobě externalizujte relace a nahrávání, abyste zabránili propojení uživatelů s jedním uzlem.
Jak mohu monitorovat vyrovnávač zátěže v Linuxu?
Použijte stránku se statistikami HAProxy a Prometheus haproxy_exporter nebo logy Nginx s nginx-exporter/stub_status. Sledujte doby odezvy, chyby, počet připojení a stav backendu. Centralizujte logy a nastavujte upozornění na dosažitelnost VIP a selhání backendu.
Mohu používat stejný server pro vyvažování zátěže a webhosting?
Můžete, ale oddělení rolí zlepšuje spolehlivost, zabezpečení a škálování. Pro malé weby může jeden Nginx poskytovat statický obsah a proxy pro aplikační servery. Pro větší stacky vyhraďte load balancer a škálujte backendy nezávisle, ideálně na cloudovém VPS, jako je YouStable.
Další kroky
- Začněte s HAProxy na Linuxovém VPS a nakonfigurujte kontroly stavu.
- Přidejte ukončení TLS a zesílené hlavičky.
- Nasaďte sekundární LB a udržujte jeho dostupnost v režimu Keepalived pro vysokou dostupnost.
- Automatizujte konfiguraci a synchronizaci certifikátů s Ansible.
- Monitorujte pomocí Prometheus/Grafana a pravidelně testujte failover.
Pomocí výše uvedených kroků můžete s jistotou nainstalovat Load Balancer na Linuxový server, škálovat své aplikace a udržovat vysokou provozuschopnost. Pokud chcete rychlejší start, YouStablePlatforma VPS a odborné poradenství vám pomohou nasadit odolnou architekturu s vyváženou zátěží během hodin, nikoli dnů.