Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
haproxy [2025/04/21 10:53] jango |
haproxy [2025/06/10 19:12] (aktuell) jango [HTTPS Termination] |
||
---|---|---|---|
Zeile 15: | Zeile 15: | ||
=====Konfiguration===== | =====Konfiguration===== | ||
+ | See also [[https:// | ||
====Global==== | ====Global==== | ||
Zeile 28: | Zeile 29: | ||
chroot /var/empty | chroot /var/empty | ||
</ | </ | ||
+ | |||
====Defaults==== | ====Defaults==== | ||
+ | |||
+ | In einem Abschnitt " | ||
+ | |||
+ | < | ||
+ | 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: | ||
+ | server s2 192.168.1.26: | ||
+ | </ | ||
====Frontend==== | ====Frontend==== | ||
+ | Ein " | ||
+ | |||
+ | < | ||
+ | frontend foo.com | ||
+ | mode http | ||
+ | bind 192.168.1.5: | ||
+ | default_backend foo_servers | ||
+ | |||
+ | frontend db.foo.com | ||
+ | mode tcp | ||
+ | bind 192.168.1.15: | ||
+ | default_backend db_servers | ||
+ | </ | ||
+ | |||
+ | ===HTTPS Termination=== | ||
+ | |||
+ | Das Pem Zertifikat muss Cert und Privkey beinhalten! | ||
+ | |||
+ | <code bash> | ||
+ | certbot certonly --standalone -d vpn.zarat.at | ||
+ | certbot certonly --standalone -d sip.zarat.at | ||
+ | |||
+ | bash -c 'cat / | ||
+ | bash -c 'cat / | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | frontend https_termination | ||
+ | mode tcp | ||
+ | bind *:443 ssl crt / | ||
+ | use_backend vpn if { req.hdr(host) -i vpn.zarat.at } | ||
+ | use_backend sip if { req.ssl_sni -i sip.zarat.at } | ||
+ | </ | ||
====Backend==== | ====Backend==== | ||
+ | |||
+ | Ein " | ||
+ | |||
+ | < | ||
+ | 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: | ||
+ | server foo2 192.168.1.26: | ||
+ | server foo3 192.168.1.27: | ||
+ | |||
+ | backend bar_servers | ||
+ | mode http | ||
+ | balance roundrobin | ||
+ | server bar1 192.168.1.35: | ||
+ | server bar2 192.168.1.36: | ||
+ | server bar3 192.168.1.37: | ||
+ | </ | ||
+ | |||
+ | =====Stats===== | ||
+ | HAProxy hat ein Web Frontend zum Überwachen der Statistiken. | ||
+ | |||
+ | < | ||
+ | frontend stats | ||
+ | mode http | ||
+ | bind *:8404 | ||
+ | stats enable | ||
+ | stats refresh 10s | ||
+ | stats uri /stats | ||
+ | stats show-modules | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | http://< | ||
+ | </ |