Benutzer-Werkzeuge

Webseiten-Werkzeuge


haproxy

Dies ist eine alte Version des Dokuments!


HAProxy ist eine kostenlose Open-Source-Software, die einen Hochverfügbarkeits-Load-Balancer (Layer 4 im OSI Modell) und Reverse-Proxy für TCP- und HTTP-basierte Anwendungen bereitstellt, die Anforderungen auf mehrere Server verteilen.

Installation

apt install haproxy

Hauptconfig unter:

/etc/haproxy/haproxy.cfg

Konfiguration

Global

Der globale Abschnitt befindet sich oben in Ihrer Konfigurationsdatei. Er definiert Anweisungen auf Prozessebene, beispielsweise die maximale Anzahl zulässiger Verbindungen, den Speicherort der Protokolle und den Benutzer und die Gruppe, unter der der Prozess ausgeführt werden soll. Das folgende Beispiel zeigt nur einige der verfügbaren Optionen:

global
  maxconn 60000
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  user  haproxy
  group haproxy
  chroot /var/empty

Defaults

In einem Abschnitt „defaults“ werden allgemeine Einstellungen gespeichert, die von den nachfolgenden Frontend- und Backend-Abschnitten übernommen werden. Er kann auch lange Konfigurationen durch Reduzierung doppelter Zeilen verkürzen. Beispiel für eine Standardkonfiguration: Durch Hinzufügen von Standardeinstellungen zur Konfiguration können Sie Einstellungen definieren, die gegebenenfalls von allen darunter liegenden Abschnitten übernommen werden. Beispielsweise ist „mode“ sowohl auf ein Frontend als auch auf ein Backend anwendbar, „balance“ hingegen nur auf Backends. Nicht alle Anweisungen können in „defaults“ aufgenommen werden, z.B. die Zeilen „bind“ und „server“.

defaults
  mode http
  balance roundrobin

# Inherits mode
frontend website
  bind :80
  default_backend web_servers

# Inherits mode and balance
backend web_servers
  server s1 192.168.1.25:80
  server s2 192.168.1.26:80

Frontend

Ein „frontend“ Abschnitt definiert die IP-Adressen und Ports, mit denen Clients eine Verbindung herstellen können. Sie können beliebig viele Frontend-Abschnitte hinzufügen, um verschiedene Websites oder Anwendungen im Internet verfügbar zu machen.

frontend foo.com
  mode http
  bind 192.168.1.5:80
  default_backend foo_servers

frontend db.foo.com
  mode tcp
  bind 192.168.1.15:3306
  default_backend db_servers

Backend

Ein „backend“ Abschnitt definiert einen Serverpool, an den der Load Balancer Anfragen weiterleitet. Sie können beliebig viele Backend-Abschnitte hinzufügen. Jedes Backend-Schlüsselwort wird durch eine Bezeichnung, z. B. „web_servers“, von anderen unterschieden.

frontend foo_and_bar
  mode http
  bind :80
  use_backend foo_servers if { req.hdr(host) -i foo.com }
  use_backend bar_servers if { req.hdr(host) -i bar.com  }

backend foo_servers
  mode http
  balance roundrobin
  server foo1 192.168.1.25:80 check
  server foo2 192.168.1.26:80 check
  server foo3 192.168.1.27:80 check

backend bar_servers
  mode http
  balance roundrobin
  server bar1 192.168.1.35:80 check
  server bar2 192.168.1.36:80 check
  server bar3 192.168.1.37:80 check

Stats

frontend stats
  mode http
  bind :8404
  stats enable
  stats refresh 10s
  stats uri /stats
  stats show-modules
haproxy.1745226085.txt.gz · Zuletzt geändert: 2025/04/21 11:01 von jango