Benutzer-Werkzeuge

Webseiten-Werkzeuge


haproxy

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
haproxy [2026/02/21 23:13]
jango
haproxy [2026/02/21 23:26] (aktuell)
jango
Zeile 469: Zeile 469:
     server app1 192.168.1.10:80 check     server app1 192.168.1.10:80 check
     server app2 192.168.1.11:80 check     server app2 192.168.1.11:80 check
 +</code>
 +
 +=====Sticky Tables=====
 +
 +Eine Stick-Table ist im Prinzip eine kleine In-Memory-Datenbank in HAProxy:
 +
 +  * Schlüssel (z. B. Client-IP)
 +  * Werte/Zähler/Flags pro Schlüssel
 +  * Ablaufzeit
 +  * automatische Updates durch Regeln
 +
 +Beispiel: "Für jede IP speichere: wie viele Fehlversuche pro Minute"
 +
 +====Stick Table definieren====
 +
 +<code>
 +stick-table type ip size 200k expire 15m store gpc0
 +</code>
 +
 +  * type ip → Key ist Client-IP
 +  * size 200k → max 200 000 Einträge
 +  * expire 15m → Eintrag verfällt nach 15 min ohne Aktivität
 +  * store gpc0 → speichere Feld gpc0 (= Generic Purpose Counter 0)
 +
 +Für jede IP gibt es einen Zähler gpc0
 +
 +====Eintrag wählen====
 +
 +<code>
 +http-request track-sc0 src if host_webmail
 +</code>
 +
 +  * nimm src (Client-IP) als Schlüssel
 +  * speichere ihn in Stick-Counter Slot 0 (sc0)
 +  * nur wenn Bedingung stimmt
 +
 +sc0 = "aktuell betrachteter Tabellen-Eintrag"
 +
 +!!! Man kann mehrere Slots haben (sc0, sc1, sc2,..)
 +
 +====Zähler erhöhen====
 +
 +<code>
 +http-request sc-inc-gpc0(0) if host_webmail is_owa_login is_post
 +</code>
 +
 +  * erhöhe gpc0
 +  * im Slot sc0
 +  * wenn Bedingung passt
 +
 +Syntax: sc-inc-<feld>(<slot>)
 +
 +!!! sc-inc-gpc0(0) = erhöhe gpc0 im sc0-Eintrag
 +
 +====Wert lesen====
 +
 +<code>
 +acl owa_too_many sc_get_gpc0(0) ge 5
 +</code>
 +
 +  * lies gpc0 im sc0-Eintrag
 +  * wenn ≥ 5 → ACL true
 +
 +Syntax: sc_get_<feld>(<slot>)
 +
 +====Aktion bei Limit====
 +
 +<code>
 +http-request deny deny_status 429 if owa_too_many
 </code> </code>
  
haproxy.txt · Zuletzt geändert: 2026/02/21 23:26 von jango