83 lines
2.5 KiB
Markdown
83 lines
2.5 KiB
Markdown
---
|
|
title: haproxy Konfiguration auf Debian 13 (trixie)
|
|
---
|
|
# haproxy
|
|
|
|
haproxy ist ein Loadbalancer.
|
|
|
|
Die Grundfunktion ist die, dass es Frontend-Konfigurationen gibt, auf denen
|
|
haproxy Anfragen per http entgegen nimmt.
|
|
|
|
Den Frontend-Konfigurationen sind Backend-Konfigurationen zugeordnet, auf die
|
|
haproxy die http-Anfragen weiterleitet.
|
|
In den Backend-Konfigurationen können ein oder mehrere Server hinterlegt sein.
|
|
haproxy verteilt bei mehreren Servern im Backend die Anfragen auf die Server.
|
|
|
|
## Default Konfiguration
|
|
|
|
Die Konfigdatei `/etc/haproxy/haproxy.cfg` enthält bereits die wichtigsten
|
|
Standard-Einstellungen:
|
|
|
|
```
|
|
global
|
|
log /dev/log local0
|
|
log /dev/log local1 notice
|
|
chroot /var/lib/haproxy
|
|
stats socket /run/haproxy/admin.sock mode 660 level admin
|
|
stats timeout 30s
|
|
user haproxy
|
|
group haproxy
|
|
daemon
|
|
|
|
# Default SSL material locations
|
|
ca-base /etc/ssl/certs
|
|
crt-base /etc/ssl/private
|
|
|
|
# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
|
|
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
|
|
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
|
|
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
|
|
|
|
defaults
|
|
log global
|
|
mode http
|
|
option httplog
|
|
option dontlognull
|
|
timeout connect 5000
|
|
timeout client 50000
|
|
timeout server 50000
|
|
errorfile 400 /etc/haproxy/errors/400.http
|
|
errorfile 403 /etc/haproxy/errors/403.http
|
|
errorfile 408 /etc/haproxy/errors/408.http
|
|
errorfile 500 /etc/haproxy/errors/500.http
|
|
errorfile 502 /etc/haproxy/errors/502.http
|
|
errorfile 503 /etc/haproxy/errors/503.http
|
|
errorfile 504 /etc/haproxy/errors/504.http
|
|
```
|
|
|
|
## Einfache Loadbalancer Konfiguration
|
|
|
|
```
|
|
frontend TheFrontend
|
|
mode http
|
|
bind 192.0.2.10:80
|
|
default_backend TheBackend
|
|
|
|
|
|
backend TheBackend
|
|
server TheWebServer20 192.0.2.20:80
|
|
server TheWebServer30 192.0.2.30:80
|
|
```
|
|
|
|
Das Beispiel lässt den haproxy auf der IP `192.0.2.10` auf dem Port 80 auf
|
|
http-Anfragen lauschen.
|
|
|
|
Eingehende Anfragen werden an die Server weitergereicht, die im Backend
|
|
"TheBackend" definiert sind.
|
|
Dort gibt es pro Server eine Zeile `server <name> <ip:port>`.
|
|
Es sind auch noch weitere Konfigurationen pro Server möglich.
|
|
|
|
haproxy liefert in der Datei `/usr/share/doc/haproxy/configuration.txt.gz` eine
|
|
sehr unfassende Dokumentation mit.
|
|
|
|
|