HAProxy Erläuterungen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Erklärung der Konfigurationsblöcke

global

Parameter Erklärung
log /dev/log local0 Logs werden an den lokalen Syslog-Daemon geschickt
chroot /var/lib/haproxy HAProxy läuft in einer chroot-Umgebung – erhöht die Sicherheit
stats socket /run/haproxy/admin.sock Unix-Socket für die Admin-Konsole (z.B. für haproxyctl)
user / group haproxy Prozess läuft nicht als root
daemon HAProxy startet im Hintergrund
ssl-default-bind-ciphers Erlaubte Cipher-Suites für TLS 1.2
ssl-default-bind-ciphersuites Erlaubte Cipher-Suites für TLS 1.3
ssl-default-bind-options ssl-min-ver TLSv1.2 Mindestens TLS 1.2 – ältere Versionen werden abgelehnt

defaults

Parameter Erklärung
mode http HAProxy arbeitet auf Layer 7 (HTTP), nicht Layer 4 (TCP)
option httplog Ausführliches HTTP-Logging (Methode, URL, Status)
option dontlognull Verbindungen ohne Daten (z.B. Port-Scans) werden nicht geloggt
timeout connect 5000 Maximale Wartezeit beim Verbindungsaufbau zum Backend (5 Sekunden)
timeout client 50000 Maximale Inaktivitätszeit auf Client-Seite (50 Sekunden)
timeout server 50000 Maximale Inaktivitätszeit auf Server-Seite (50 Sekunden)
errorfile Eigene HTML-Fehlerseiten für HTTP-Fehlercodes

frontend ft_https

Parameter Erklärung
bind 10.88.2XX.41:443 ssl crt ... Lauscht auf Port 443, terminiert SSL mit dem angegebenen Zertifikat
option forwardfor Fügt den Header X-Forwarded-For hinzu – der Webserver sieht die echte Client-IP
acl acl_reproxy hdr_beg(host) -i reproxy ACL greift wenn der Hostname mit reproxy beginnt (case-insensitiv)
use_backend backend_www if acl_reproxy Wenn die ACL zutrifft, wird der Traffic an das Backend weitergeleitet

frontend ft_http

Parameter Erklärung
bind 10.88.2XX.41:80 Lauscht auf Port 80
http-request redirect code 301 scheme https Leitet alle HTTP-Anfragen permanent (301) auf HTTPS um

backend backend_www

Parameter Erklärung
server www www.it2XX.int:443 Zielserver mit Hostname und Port – HAProxy setzt SNI automatisch korrekt
ssl Verbindung zum Backend wird verschlüsselt (HTTPS)
verify none Zertifikat des Backends wird nicht geprüft – bei internen/selbst-signierten Zertifikaten üblich