HAProxy ist eine leistungsstarke Open-Source-Software für Load Balancing und Proxying von TCP- und HTTP-Verbindungen. Diese Anleitung zeigt, wie HAProxy auf einem Ubuntu-Server installiert und konfiguriert wird.

Voraussetzungen

  • Ubuntu 22.04 oder neuer
  • Benutzer mit sudo-Rechten
  • Mindestens zwei Backend-Server zur Lastverteilung

1. HAProxy installieren

Aktualisieren der Paketlisten und Installation von HAProxy:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt update && sudo apt upgrade -y
sudo apt install haproxy -y
sudo apt update && sudo apt upgrade -y sudo apt install haproxy -y
sudo apt update && sudo apt upgrade -y
sudo apt install haproxy -y

2. HAProxy-Dienst verwalten

HAProxy starten, stoppen und aktivieren:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl start haproxy # Starten
sudo systemctl stop haproxy # Stoppen
sudo systemctl restart haproxy # Neustarten
sudo systemctl enable haproxy # Automatischen Start aktivieren
sudo systemctl start haproxy # Starten sudo systemctl stop haproxy # Stoppen sudo systemctl restart haproxy # Neustarten sudo systemctl enable haproxy # Automatischen Start aktivieren
sudo systemctl start haproxy    # Starten
sudo systemctl stop haproxy     # Stoppen
sudo systemctl restart haproxy  # Neustarten
sudo systemctl enable haproxy   # Automatischen Start aktivieren

3. Standardkonfiguration sichern

Vor Änderungen an der Konfiguration sollte die Originaldatei gesichert werden:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

4. HAProxy als Load Balancer konfigurieren

Bearbeiten der Konfigurationsdatei:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /etc/haproxy/haproxy.cfg
sudo nano /etc/haproxy/haproxy.cfg
sudo nano /etc/haproxy/haproxy.cfg

Ersetzen oder Ergänzen des Inhalts mit folgender Konfiguration (Backend-Server anpassen):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
frontend http_front
bind *:80
default_backend web_servers
backend web_servers
balance roundrobin
server web1 192.168.1.101:80 check
server web2 192.168.1.102:80 check
frontend http_front bind *:80 default_backend web_servers backend web_servers balance roundrobin server web1 192.168.1.101:80 check server web2 192.168.1.102:80 check
frontend http_front
    bind *:80
    default_backend web_servers

backend web_servers
    balance roundrobin
    server web1 192.168.1.101:80 check
    server web2 192.168.1.102:80 check

Speichern mit STRG + X, Y und Enter.

5. Konfiguration testen und HAProxy neu starten

Die Konfiguration auf Fehler prüfen:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Falls keine Fehler vorliegen, HAProxy neu starten:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl restart haproxy
sudo systemctl restart haproxy
sudo systemctl restart haproxy

6. HAProxy-Statistikseite aktivieren (optional)

Um eine Weboberfläche mit Statistiken zu aktivieren, folgende Zeilen in /etc/haproxy/haproxy.cfg hinzufügen:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
listen stats
bind *:8080
stats enable
stats uri /stats
stats refresh 10s
stats auth admin:passwort
listen stats bind *:8080 stats enable stats uri /stats stats refresh 10s stats auth admin:passwort
listen stats
    bind *:8080
    stats enable
    stats uri /stats
    stats refresh 10s
    stats auth admin:passwort

Neustart von HAProxy:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl restart haproxy
sudo systemctl restart haproxy
sudo systemctl restart haproxy

Die Statistikseite kann dann unter http://<server-ip>:8080/stats aufgerufen werden.

7. Firewall konfigurieren

Falls ufw aktiv ist, die benötigten Ports freigeben:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp # Falls die Statistikseite genutzt wird
sudo ufw reload
sudo ufw allow 80/tcp sudo ufw allow 8080/tcp # Falls die Statistikseite genutzt wird sudo ufw reload
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp  # Falls die Statistikseite genutzt wird
sudo ufw reload

8. Funktionstest

Nach der Einrichtung kann HAProxy getestet werden, indem im Browser die IP des Load Balancers aufgerufen wird:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
http://<load-balancer-ip>
http://<load-balancer-ip>
http://<load-balancer-ip>

Die Anfragen sollten nun auf die konfigurierten Backend-Server verteilt werden.

Kategorien: Allgemein