Ein Load Balancer auf einem Linux-Server ist eine Software, die den eingehenden Datenverkehr auf mehrere Backend-Server verteilt, um Verfügbarkeit, Leistung und Zuverlässigkeit zu verbessern.
Es überwacht den Serverzustand, leitet jede Anfrage mithilfe von Algorithmen (Round-Robin, Least Connections) an das beste Ziel weiter und kann beenden. SSLInhalte zwischenspeichern, Sicherheit gewährleisten und horizontal zu geringen Kosten skalieren.
In diesem Leitfaden erfahren Sie, wie ein Load Balancer unter Linux funktioniert und worin der Unterschied zwischen Schicht 4 und Schicht 7 Vorgehensweisen, wann man HAProxy wählen sollte Nginxoder IPVS, und wie man mit Keepalived einen produktionsreifen, hochverfügbaren Load Balancer bereitstellt.
Wir verwenden praktische Beispiele, die Sie nachahmen können und die auf realen Hosting-Erfahrungen basieren.
Was ist ein Load Balancer auf einem Linux-Server?
Ein Linux-Loadbalancer ist typischerweise HAProxy. Nginxoder IPVS (LVS), das auf einer Linux-Distribution (Ubuntu, Debian, AlmaLinux, Rocky usw.) läuft.

Es befindet sich vor mehreren Anwendungsservern und leitet den Datenverkehr intelligent weiter. Neben der Verteilung führt es auch Integritätsprüfungen und Sitzungspersistenz durch. SSL Entlastung und Verkehrsgestaltung.
Ebene 4 vs. Ebene 7 (Was Sie tatsächlich ausbalancieren)
Das Verständnis der verschiedenen Ebenen verdeutlicht Fähigkeiten und Kosten:
- Schicht 4 (Transport)Funktioniert nur mit TCP/UDP. Schnell und effizient. Untersucht keine HTTP-Inhalte. Tools: IPVS (LVS), HAProxy im TCP-Modus.
- Schicht 7 (Anwendung)Versteht HTTP/HTTPS-Header, Pfade, Cookies und Methoden. Ermöglicht erweitertes Routing, WAF, Caching, Komprimierung und Sticky Sessions. Tools: HAProxy HTTP-Modus. Nginx, Gesandter, Traefik.
Beliebte Linux-Load-Balancing-Stacks
- HAProxy (L4/L7): Hohe Leistung, umfassende Integritätsprüfungen, TLS, Client-Verbindungen, Beobachtbarkeit. Hervorragende Standardeinstellung für Webanwendungen und APIs.
- Nginx (L7): Reverse-Proxy mit ausgereiften HTTP-Funktionen, HTTP/2, Caching und statischer Auslagerung. Ideal für Web-Workloads und inhaltsreiche Websites.
- LVS/IPVS (L4): Lastverteilung auf Kernel-Ebene für sehr hohen Durchsatz und extrem geringen Overhead.
- Keepalived: Fügt HAProxy Hochverfügbarkeit (VRRP virtuelle IP) und zustandsbasiertes Failover hinzu.Nginx/IPVS.
Warum einen Linux Load Balancer verwenden? Vorteile und Anwendungsfälle
- Hohe Verfügbarkeit: Ausfallende Server automatisch entfernen; für Failover eine Floating VIP verwenden.
- Horizontale Skalierung: Hinzufügen oder Entfernen von Backend-Knoten ohne Ausfallzeiten.
- SicherheitZentralisierung von TLS, Ratenbegrenzung, Bot-Filterung und grundlegenden WAF-Regeln.
- Leistung: Verbindungspooling, HTTP/2, Caching, Komprimierung und TCP-Optimierungen.
- KostenkontrolleOpen-Source- und Standard-Linux-Hardware schlägt viele managed Preismodelle pro GB in großem Umfang.
Gemeinsame Architekturen
Einzelner Reverse-Proxy (klein bis mittelgroß)
Ein HAProxy oder Nginx Ein Node-Front-Server steuert 2–5 Anwendungsserver an. Einfach zu bedienen. manageAllerdings stellt es ohne Snapshots und schnelle Wiederherstellung einen Single Point of Failure dar. Am besten geeignet für Entwicklungs-, Staging- oder kleinere Websites.
Aktiv–Standby mit Keepalived (Produktion)
Zwei Load Balancer teilen sich eine virtuelle IP-Adresse (VIP) über VRRP. Fällt der primäre Load Balancer aus, übernimmt der sekundäre automatisch. Dies ist das gängigste Produktionsmuster für Web- und E-Commerce-Anwendungen.
IPVS auf L4 für extremen Durchsatz
Kernelbasierter Lastausgleich mit IPVS ermöglicht Millionen gleichzeitiger Verbindungen mit minimalem Aufwand. CPU Verwendung. Wird für APIs mit extrem hohem Datenverkehr, Gaming oder Streaming verwendet, oft in Kombination mit Keepalived für VIP-Failover.
Wie man die richtige Wahl trifft: HAProxy vs. Nginx vs. IPVS
- Wählen Sie HAProxy. Wenn Sie erweiterte Gesundheitsprüfungen, TCP- und HTTP-Unterstützung, detaillierte Metriken, Adhäsion, ACLs und Zuverlässigkeit auf Unternehmensebene für APIs und Anwendungen benötigen.
- Wählen Nginx Wenn Sie einen leistungsstarken HTTP-Reverse-Proxy mit Caching, statischer Auslagerung und einfacher Integration in Web-Stacks benötigen.
- Wählen Sie IPVS Wenn Sie reine Layer-4-Geschwindigkeit mit minimalem Overhead wünschen und kein inhaltsbasiertes Routing benötigen.
Schritt für Schritt: Einen produktionsreifen Linux-Load-Balancer einrichten
Voraussetzungen und Netzwerkplan
- Zwei Linux-VMs für Load Balancer (LB1, LB2) und 2+ Backend-Anwendungsserver (APP1, APP2).
- Privates Netzwerk (z. B. 10.0.0.0/24). VIP: 10.0.0.100.
- DNS Eintrag für Ihre Domain, der auf den VIP (A/AAAA) verweist.
- Die Firewall erlaubt den Datenverkehr über Port 80/443 zum VIP und über Port 80/443 vom Load Balancer zu den Backends.
Option A: HAProxy (L7) – Installieren und Konfigurieren
Auf Ubuntu/Debian:
sudo apt update && sudo apt install -y haproxy
sudo systemctl enable --now haproxyMinimales HTTPS-Offloading + Integritätsprüfungen + persistente Sitzungen:
# /etc/haproxy/haproxy.cfg
global
log /dev/log local0
maxconn 10000
tune.ssl.default-dh-param 2048
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5s
timeout client 30s
timeout server 30s
frontend web_in
bind *:80
bind *:443 ssl crt /etc/ssl/private/example.pem alpn h2,http/1.1
http-request redirect scheme https unless { ssl_fc }
default_backend app_pool
backend app_pool
balance roundrobin
option httpchk GET /health
http-check expect status 200
cookie SRV insert indirect nocache
server app1 10.0.0.11:80 check cookie A
server app2 10.0.0.12:80 check cookie B
# reload
# sudo haproxy -c -f /etc/haproxy/haproxy.cfg && sudo systemctl reload haproxyAPIs, berücksichtigen balance leastconn, Fügen option http-buffer-request und die Timeout-Werte basierend auf der Anfrage-/Antwortgröße anpassen.
Option B: Nginx (L7) — Lastverteilung für Reverse-Proxys
sudo apt update && sudo apt install -y nginx
sudo systemctl enable --now nginxGrundlegende Upstream-Funktionen mit HTTPS und HTTP/2:
# /etc/nginx/conf.d/loadbalancer.conf
upstream app_upstream {
least_conn;
server 10.0.0.11:80 max_fails=3 fail_timeout=10s;
server 10.0.0.12:80 max_fails=3 fail_timeout=10s;
keepalive 64;
}
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/ssl/certs/fullchain.pem;
ssl_certificate_key /etc/ssl/private/privkey.pem;
location / {
proxy_pass http://app_upstream;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /health {
return 200 'ok';
}
}
# test and reload
# sudo nginx -t && sudo systemctl reload nginxOption C: IPVS (L4) – Ultraschneller Kernel-Lastausgleich
Installieren Sie die Tools und erstellen Sie einen virtuellen Dienst im NAT-Modus:
sudo apt install -y ipvsadm keepalived
# Create VIP 10.0.0.100:80 with round robin
sudo ipvsadm -A -t 10.0.0.100:80 -s rr
sudo ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.11:80 -m
sudo ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.12:80 -m
# View stats
ipvsadm -Ln --statsIPVS unterstützt Direct Routing (DR) und vollständiges NAT. DR bietet eine höhere Leistung, erfordert jedoch eine ARP-/Realserver-Optimierung; NAT ist einfacher zu bedienen.
Hochverfügbarkeit mit Keepalived (VRRP) hinzufügen
Keepalived stellt einen Floating VIP bereit, der automatisch zwischen LB1 und LB2 umschaltet.
# /etc/keepalived/keepalived.conf (LB1)
vrrp_script chk_haproxy {
script "/usr/bin/pgrep haproxy"
interval 2
fall 2
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 42secret
}
virtual_ipaddress {
10.0.0.100/24 dev eth0
}
track_script {
chk_haproxy
}
}
# LB2: set state BACKUP and priority 100
# sudo systemctl enable --now keepalivedTausche das Gesundheitsskript aus, um zu prüfen Nginx oder IPVS nach Bedarf (z.B. pgrep nginx oder ein HTTP-Prüfskript).
Grundlagen der Leistungsoptimierung
Kernel- und Dateideskriptor-Optimierung
# /etc/sysctl.d/99-lb.conf
net.core.somaxconn=65535
net.ipv4.ip_local_port_range=1024 65000
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=15
net.core.netdev_max_backlog=250000
net.ipv4.tcp_max_syn_backlog=262144
fs.file-max=1000000
# Apply
# sudo sysctl --system
# Increase nofile for HAProxy/Nginx
# /etc/security/limits.d/99-nofile.conf
haproxy soft nofile 500000
haproxy hard nofile 500000
nginx soft nofile 500000
nginx hard nofile 500000TLS- und HTTP-Optimierungen
- Aktivieren Sie HTTP/2 und moderne Verschlüsselungsverfahren; verwenden Sie OCSP-Stapling.
- Verwenden Sie Keep-Alive für Backends und optimieren Sie die Wiederverwendungseinstellungen.
- Bevorzugen Mindestverbindungen bei ungleichen Anfragezeiten; verwenden Round Robin für homogene Arbeitslasten.
- gzip/brotli aktivieren (Nginx) und erwägen Sie das Caching statischer Assets.
Checkliste zur Sicherheitshärtung
- TLS auf dem Load Balancer beenden; HSTS und starke Verschlüsselungen erzwingen.
- Missbrauchende IPs sollen beschränkt und grundlegende Bot-Schutzmaßnahmen hinzugefügt werden.
- Implementieren Sie eine WAF (Nginx ModSecurity oder HAProxy ACLs) für gängige Angriffsmuster.
- Beschränken Sie die Admin-/Statusseiten nach IP-Adresse oder Authentifizierung.
- Halten Sie Betriebssystem und Pakete auf dem neuesten Stand; automatisieren Sie Aktualisierungen und Konfigurationen unbeaufsichtigt. management.
Fehlerbehebung: Schnellbefehle
- Hörer überprüfen:
ss -lntp | egrep '80|443' - Serviceprotokolle prüfen:
journalctl -u haproxy -forjournalctl -u nginx -f - Endpunkte für die Gesundheitsprüfung:
curl -I http://APP:80/health - Erreichbarkeit von VIPs:
curl -I -k https://VIP - IPVS-Statistiken:
ipvsadm -Ln --stats - Paketerfassung:
sudo tcpdump -ni eth0 host VIP and port 443
Kosten und Skalierbarkeit: Selbst gehostet vs. Cloud
- Selbst gehostet (Linux + HAProxy/Nginx/IPVS)Niedrige Softwarekosten, volle Kontrolle, hervorragende Leistung. Sie manage HA, Skalierung, Patching.
- Cloud-Load-Balancing (ELB, Cloud Load Balancing)Verwaltet und flexibel mit stündlichen und datenverarbeitungsbezogenen Kosten. Weniger Kontrolle, einfache Multi-AZ/Region-Verwaltung.
- HybridAus Kostengründen und hinsichtlich der Flexibilität sollten Cloud-LBs am Edge und Linux-LBs innerhalb von Clustern eingesetzt werden.
Wenn Sie es vorziehen managed Infrastruktur ohne Leistungseinbußen, YouStable managed Server und Load Balancer Setups können HAProxy bereitstellen/Nginx Mit Keepalived, Überwachung und gehärtetem TLS für Sie – ideal, wenn Sie Ergebnisse und nicht nur technische Details wollen.
Praxistipps aus der Produktion
- Fangen Sie einfach anL7 HAProxy mit zwei Backends löst 80% der Fälle.
- Gesundheitschecks sind wichtig: Verwenden Sie Prüfungen auf Anwendungsebene (z. B. /health), die Abhängigkeiten wie Datenbank und Cache überprüfen.
- Plan-HaftungFür sitzungsgebundene Anwendungen sollten Sie HAProxy-Cookies verwenden oder Nginx IP-Hash. Bevorzugen Sie nach Möglichkeit zustandslose Sitzungen mit einem gemeinsamen Speicher.
- Beobachten Sie alles: HAProxy exportieren/Nginx Metriken an Prometheus senden und mit Grafana visualisieren. Baselines verhindern Überraschungen.
- Test-Failover: Üben Sie das Ziehen des Steckers an LB1, um das VRRP-Failover und das Verhalten der Clientsitzung zu überprüfen.
Häufig gestellte Fragen – Load Balancer auf Linux-Servern
Is Nginx Ein Load Balancer oder nur ein Webserver?
Nginx Es ist beides. Als Reverse-Proxy verteilt es HTTP/HTTPS-Traffic mithilfe von Algorithmen wie Round Robin und Least Connections, unterstützt HTTP/2, Caching, Komprimierung und grundlegende WAF-Funktionen. Es wird häufig als L7-Loadbalancer vor Anwendungsservern eingesetzt.
Welches System eignet sich besser für den Linux-Lastausgleich: HAProxy oder Nginx?
Für reines Load Balancing mit umfassenden Integritätsprüfungen, Verbindungsverwaltung und erweiterten Zugriffskontrolllisten (ACLs) ist HAProxy im Allgemeinen führend. Benötigen Sie neben dem Proxying auch die Bereitstellung und das Caching statischer Dateien, Nginx ist überzeugend. Viele Stacks nutzen HAProxy am Edge und Nginx auf App-Knoten.
Worin besteht der Unterschied zwischen einem Reverse-Proxy und einem Load Balancer?
Ein Reverse-Proxy befindet sich vor den Servern und leitet Anfragen weiter; ein Load Balancer ist ein Reverse-Proxy, der den Datenverkehr auf mehrere Backends verteilt und Integritätsprüfungen sowie Failover durchführt. Alle Load Balancer sind Reverse-Proxys, aber nicht alle Reverse-Proxys führen Load Balancing durch.
Benötige ich Sticky Sessions für meine App?
Verwenden Sie Sticky Sessions, wenn Ihre App den Benutzerstatus im Arbeitsspeicher speichert und nicht extern teilen kann. Andernfalls sind zustandslose Sessions mit Redis oder datenbankgestützten Speichern vorzuziehen. Zustandslose Architekturen skalieren besser und reduzieren eine ungleichmäßige Lastverteilung.
Wie kann ich meinen Linux-Loadbalancer hochverfügbar machen?
Setzen Sie zwei Load-Balancer-Knoten ein und nutzen Sie Keepalived (VRRP) zur gemeinsamen Nutzung einer virtuellen IP-Adresse. Fügen Sie Integritätsprüfungen hinzu, um einen ausgefallenen primären Knoten herabzustufen, die Konfigurationen synchron zu halten und das Failover regelmäßig zu testen. Optional können Sie die Knoten in verschiedenen Verfügbarkeitszonen betreiben.
Fazit - Load Balancer auf einem Linux-Server
Das Einrichten eines Load Balancers auf einem Linux-Server ist unkompliziert und leistungsstark. Beginnen Sie mit HAProxy oder NginxFügen Sie Keepalived für Hochverfügbarkeit hinzu und optimieren Sie Kernel, TLS und Observability. Wenn Sie dies lieber nicht möchten. manage die Nuancen, YouStable Wir können eine sichere, leistungsstarke Load-Balancing-Schicht entwerfen, bereitstellen und betreiben, die auf Ihre Arbeitslast zugeschnitten ist.