Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
haproxy [2025/10/27 18:43] jango [Defaults] |
haproxy [2025/10/29 09:24] (aktuell) jango [ACL] |
||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| =====Installation===== | =====Installation===== | ||
| + | |||
| + | * Service Ubuntu: / | ||
| + | * Service RHEL: / | ||
| <box red>In den meissten Distributionen installiert der Paketmanager eine veraltete Version (1.8)</ | <box red>In den meissten Distributionen installiert der Paketmanager eine veraltete Version (1.8)</ | ||
| Zeile 38: | Zeile 41: | ||
| sudo cp haproxy / | sudo cp haproxy / | ||
| sudo mkdir -p / | sudo mkdir -p / | ||
| - | cp examples/ | + | |
| + | # Wahrscheinlich nicht funktional, besser from scratch erstellen | ||
| + | # cp examples/ | ||
| </ | </ | ||
| - | Cretae | + | Create |
| < | < | ||
| Zeile 65: | Zeile 70: | ||
| sudo systemctl enable haproxy | sudo systemctl enable haproxy | ||
| sudo systemctl start haproxy | sudo systemctl start haproxy | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # Fix not needed | ||
| + | setcap ' | ||
| + | </ | ||
| + | ====Manueller Start==== | ||
| + | |||
| + | < | ||
| + | haproxy -f / | ||
| + | haproxy -db -f / | ||
| </ | </ | ||
| =====Konfiguration===== | =====Konfiguration===== | ||
| Zeile 314: | Zeile 330: | ||
| Siehe [[https:// | Siehe [[https:// | ||
| + | =====ACL===== | ||
| + | |||
| + | ACL geben true oder false zurück. Die ACL kann dann in jeder Zeile angewendet werden die ein conditional if or unless statement abfragt. Siehe [[https:// | ||
| + | |||
| + | < | ||
| + | frontend www | ||
| + | bind :80 | ||
| + | acl images_url path_beg -i /images/ | ||
| + | | ||
| + | </ | ||
| + | |||
| + | =====Fetches===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Eine Funktion, die Informationen über die aktuelle Anfrage, die aktuelle Antwort, die Verbindung oder den internen Zustand des Load Balancers zurückgibt. | ||
| + | |||
| + | < | ||
| + | frontend www | ||
| + | bind :80 | ||
| + | http-request deny if { path /api/bad/ } | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | frontend www | ||
| + | bind :80 | ||
| + | http-request set-var(txn.http_version) req.ver | ||
| + | http-response add-header Via " | ||
| + | </ | ||
| + | =====Persistence===== | ||
| + | |||
| + | ====Stick Table==== | ||
| + | |||
| + | Siehe [[https:// | ||
| + | |||
| + | < | ||
| + | # Track src IP, max 1Mill entries expire after 30m | ||
| + | backend app_servers | ||
| + | stick-table type ip size 1m expire 30m | ||
| + | stick on src | ||
| + | server app1 192.168.1.10: | ||
| + | server app2 192.168.1.11: | ||
| + | </ | ||
| + | |||
| =====Links===== | =====Links===== | ||