Tutorials  /  Ubuntu

HAProxy auf Ubuntu 22.04 installieren und einrichten

Ccentron Redaktion · September 2025 ·9 Min. Lesezeit ·Ubuntu, Tutorial

HAProxy (High Availability Proxy) ist eine Open-Source Proxy-Anwendung, die sowohl als Reverse-Proxy als auch als Forward-Proxy für TCP- und HTTP-basierte Anwendungen eingesetzt werden kann. Unter Ubuntu 22.04 lässt sich HAProxy installieren, um eingehenden Datenverkehr auf mehrere Backend-Server zu verteilen. Dadurch werden Lasten reduziert und die Gesamtleistung von Anwendungen verbessert.

HAProxy agiert als zentrales Gateway, das alle externen Anfragen an Backend-Server weiterleitet, auf denen Webdienste, Datenbanken oder Dateiverwaltungsanwendungen laufen. Sobald ein Client eine Anfrage stellt, prüft HAProxy diese und leitet sie gemäß den festgelegten Regeln an einen Backend-Server weiter. Der Backend-Server verarbeitet die Anfrage und sendet die Antwort zurück an den Client. Während des gesamten Prozesses dient HAProxy als Einstiegspunkt und verteilt die Last auf die Zielserver entsprechend den Konfigurationseinstellungen.

Voraussetzungen

Stellen Sie innerhalb eines einzelnen Standorts Folgendes sicher:

  • Eine Ubuntu 22.04 Instanz als HAProxy-Server bereitstellen.
  • Mindestens zwei Ubuntu 22.04 Instanzen als Backend-Server bereitstellen.
  • Alle Server an dasselbe VPC 2.0 Netzwerk anbinden.
  • Einen Domain-A-Record erstellen, der auf die IP-Adresse des HAProxy-Servers verweist (z. B. haproxy.example.com).
VM

Passende Infrastruktur bei centron

Ubuntu-Server ohne eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Beispiel einer HAProxy Load-Balancing-Topologie

Das folgende Beispiel zeigt, wie HAProxy Anfragen an Backend-Server mit Apache-Webserver verteilt. Abhängig vom Serverzustand und der gewählten Balancing-Methode leitet HAProxy Client-Verbindungen entsprechend weiter.

Beispiel-HAProxy-Netzwerk

Nachfolgend die IP-Details für jeden Server im VPC 2.0 Netzwerk:

  • HAProxy-Server

    Öffentlicher Hostname: haproxy.example.com

    VPC 2.0 IP: 10.128.0.2

  • Server 1

    VPC 2.0 IP: 10.128.0.3

  • Server 2

    VPC 2.0 IP: 10.128.0.4

HAProxy auf Ubuntu 22.04 installieren

Gehen Sie wie folgt auf dem HAProxy-Server vor:

1. Verbindung zum Server via SSH herstellen

Konsole
$ ssh root@SERVER-IP

2. Einen Nicht-Root-Benutzer mit Sudo-Rechten anlegen

Konsole
# adduser haproxyadmin && adduser haproxyadmin sudo

3. Zum neuen Benutzer wechseln

Konsole
# su - haproxyadmin

4. Paketindex aktualisieren

Konsole
$ sudo apt update

5. HAProxy installieren

Konsole
$ sudo apt install haproxy -y

Falls die benötigte Version nicht in den Standard-APT-Repositories vorhanden ist, installieren Sie eine bestimmte Version über das vbernat PPA:

Konsole
$ sudo add-apt-repository ppa:vbernat/haproxy-2.8 -y

6. HAProxy beim Systemstart aktivieren

Konsole
$ sudo systemctl enable haproxy

7. HAProxy-Status prüfen

Konsole
$ sudo systemctl status haproxy

Ausgabe:

...

Active: active (running)

Den HAProxy-Server konfigurieren

Die Hauptkonfigurationsdatei von HAProxy unter /etc/haproxy/haproxy.cfg steuert, wie die Anwendung arbeitet und auf eingehende Verbindungen reagiert. Standardmäßig enthält die Datei folgende Abschnitte:

  • global: Definiert, wie HAProxy auf dem System läuft. Optionen sind u. a. Logging, Benutzer-/Gruppenzuordnung, Servicemodus und SSL-Einstellungen.
  • defaults: Legt Leistungsparameter wie Timeouts und den Verbindungsmodus fest. Zum Beispiel behandelt http sämtlichen Traffic als HTTP, während tcp rohe TCP-Verbindungen verarbeitet.

Gehen Sie wie folgt vor, um die Konfiguration um zusätzliche Abschnitte zu erweitern, die festlegen, wie HAProxy die Last an Backend-Server im VPC 2.0 Netzwerk verteilt.

1. Standardkonfiguration sichern

Konsole
$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.backup

2. Konfigurationsdatei bearbeiten

Konsole
$ sudo nano /etc/haproxy/haproxy.cfg

3. Load-Balancer-Konfiguration hinzufügen

Code
frontend website-frontend
    bind *:80,*:443
    option httpchk GET /healthcheck
    default_backend servers

backend servers
    balance roundrobin
    server server-1 10.128.0.3:80 weight 1 check
    server server-2 10.128.0.4:80 weight 1 check

Erklärung:

  • frontend: Der Abschnitt website-frontend weist HAProxy an, auf den Ports 80 (HTTP) und 443 (HTTPS) zu lauschen.
  • option httpchk: Führt Health-Checks auf den Backend-Servern aus.
  • default_backend: Definiert den Backend-Pool für die Lastverteilung.
  • backend: Die Gruppe servers definiert die eigentlichen Zielserver.
  • balance roundrobin: Verteilt die Verbindungen gleichmäßig auf die Server.
  • server: Richtet einzelne Server mit Health-Check-Optionen und Gewichtung für das Load-Balancing ein.

4. HAProxy-Statistiken aktivieren

Fügen Sie folgende Konfiguration hinzu, um ein Monitoring-Dashboard bereitzustellen:

Code
listen stats
    bind *:8404  
    mode http   
    stats enable 
    stats uri /stats 
    stats auth admin:your_password 
    stats refresh 10s

Mit dieser Konfiguration können Sie eine Echtzeit-Statistikseite aufrufen, die Kennzahlen wie Sitzungen, Anfragen, Antwortzeiten und Fehler anzeigt.

5. HAProxy neu starten

Konsole
$ sudo systemctl restart haproxy

6. Firewall konfigurieren

Die Uncomplicated Firewall (UFW) blockiert standardmäßig eingehende Verbindungen. Erlauben Sie die benötigten Ports:

HTTP-Traffic erlauben:

Konsole
$ sudo ufw allow 80/tcp

Zugriff auf die Statistikseite erlauben:

Konsole
$ sudo ufw allow 3804/tcp

UFW neu laden, um Änderungen zu übernehmen:

Konsole
$ sudo ufw reload

7. Verbindung zu Backend-Servern testen

Überprüfen Sie die Erreichbarkeit mit ping:

Server 1

Konsole
$ ping 10.128.0.3

Beispielausgabe:

2 packets transmitted, 2 received, 0% packet loss

Server 2

Konsole
$ ping 10.128.0.4

Beispielausgabe:

2 packets transmitted, 2 received, 0% packet loss

Backend-Server konfigurieren

HAProxy führt Health-Checks auf den Backend-Servern durch, um deren Verfügbarkeit zu prüfen. Fällt ein Server aus, wird er aus dem Pool entfernt, bis er wieder reagiert. Gehen Sie auf jedem Backend-Server wie folgt vor:

1. Verbindung zum Backend-Server herstellen

Konsole
$ ssh root@10.128.0.3

2. Neuen Benutzer anlegen

Konsole
# adduser sysadmin && adduser sysadmin sudo

3. Zum neuen Benutzer wechseln

Konsole
# su - sysadmin

4. Paketindex aktualisieren

Konsole
$ sudo apt update

5. Apache Webserver installieren

Konsole
$ sudo apt install apache2 -y

6. Apache aktivieren

Konsole
$ sudo systemctl enable apache2

7. Apache Web-Root konfigurieren

Wechseln Sie ins Dokumentenverzeichnis und ersetzen Sie die Standard-Indexdatei:

Konsole
$ cd /var/www/html/
$ sudo mv index.html index.BAK
$ sudo nano index.html

Server-1 index.html:

Hello!

This content is served by Server 1.

Server-2 index.html:

Hello!

This content is served by Server 2.

8. Dateiberechtigungen zuweisen

Konsole
$ sudo chown -R www-data:www-data /var/www/html/index.html

9. Apache neu starten

Konsole
$ sudo systemctl restart apache2

10. Netzwerk-Interface überprüfen

Konsole
$ ip a

Der Name des VPC-Interfaces sollte in der Ausgabe etwa enp8s0 lauten.

11. HTTP-Traffic über das VPC-Interface zulassen

Konsole
$ sudo ufw allow in on enp8s0 to any port 80
$ sudo ufw reload

An diesem Punkt verteilt der HAProxy-Server die eingehenden Anfragen gleichmäßig auf die Backend-Server, und jeder Server liefert seine konfigurierte Index-Seite als Antwort zurück.

Auf die beschleunigte Webanwendung mit HAProxy zugreifen

HAProxy verteilt eingehende Anfragen im Round-Robin-Verfahren an die Backend-Server im VPC 2.0 Netzwerk. Abhängig vom Serverzustand werden Anfragen gleichmäßig rotiert, sodass kein einzelner Server überlastet wird. Führen Sie die folgenden Schritte aus, um zu bestätigen, dass Ihre Backend-Server korrekt über HAProxy antworten.

1. Ihre HAProxy-Domain öffnen

Öffnen Sie in einem Webbrowser (z. B. Chrome) die Domain Ihres HAProxy-Servers:

Code
http://haproxy.example.com

Sobald die Seite geladen ist, sollte die Anwendung im Browser angezeigt werden. Die erste Anfrage kann von Server 1 beantwortet werden, während weitere Anfragen an andere Server im Backend-Pool weitergeleitet werden.

Beispiel:

  • Erste Anfrage → Server 1 liefert seine Webseite über HAProxy aus.
  • Nächste Aktualisierung → Server 2 antwortet mit seinen Inhalten.
  • Weitere Aktualisierung → Server 1 antwortet erneut, was den Round-Robin-Algorithmus demonstriert.

2. Auf die HAProxy-Statistikseite zugreifen

Um die HAProxy-Aktivitäten zu überwachen, öffnen Sie die Statistikoberfläche auf Port 8404:

Code
http://haproxy.example.com:8404

Melden Sie sich mit dem administrativen Benutzernamen und Passwort an, die Sie mit der Direktive stats auth in Ihrer Konfiguration festgelegt haben.

Nach erfolgreicher Anmeldung erscheint das HAProxy-Dashboard im Browser, das Metriken sowohl für Frontend- als auch Backend-Performance anzeigt.

3. Ihre Anwendung überwachen

In der Statistikoberfläche können Sie den Live-Traffic verfolgen, Verbindungsraten einsehen und Leistungsengpässe identifizieren. Dies erleichtert eine effiziente Fehlerbehebung und Optimierung Ihrer Webanwendung.

Fazit

Sie haben HAProxy erfolgreich implementiert und konfiguriert, um den Traffic zwischen mehreren Backend-Servern in einem VPC 2.0 Netzwerk auszugleichen. Mit HAProxy wird Ihre Anwendung robuster und zuverlässiger, da Client-Anfragen intelligent verwaltet werden. Je nach Bedarf können Sie weitere Backend-Server hinzufügen und mit verschiedenen Load-Balancing-Algorithmen experimentieren, um die Gesamtleistung zusätzlich zu verbessern.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Ubuntu
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren