[gelöst]Hilfe! HAProxy und ACLs funktionieren nicht so, wie ich will

Started by vklaffehn, October 31, 2018, 12:10:51 PM

Previous topic - Next topic
Moin!

Ich versuche gerade, HAProxy als reverse proxy zu konfigurieren, um verschiedene Dienste im LAN von außen erreichbar zu machen. Folgendes habe ich bisher konfiguriert :

Real Servers :
server1, port 80, kein SSL
server2, port 443, SSL

Backends :
backend1 mit Standardvorgaben, Server : Server1
backend2 mit Standardvorgaben, Server : Server2

Conditions :
condition1 : path starts with "/test1"
condition2 : path starts with "/test2"

Rules :
rule1 : if 'condition1' use backend 'backend1'
rule2 : if 'condition1' use backend 'backend2'

Frontends :
frontend1: listen address <externeip>:443, HTTPS SSL ofloading und lets encrypt Zertifikat, kein default backend, bei 'selected rules' 'rule1'
frontend2: listen address <externeip>:443, HTTPS SSL ofloading und lets encrypt Zertifikat, kein default backend, bei 'selected rules' 'rule2'

So, wenn jetzt nur frontend1 enabled ist, kann ich wunderbar auf server1 zugreifen über 'https://<externeip>/test1'. Andere URLs liefern, wie erwartet, error 503.
Aktiviere ich aber auch frontend2, geht NUR NOCH frontend2, bei der vorherigen URL kommt jetzt Error 503.
Was mache ich falsch?? Eigentlich sollte das doch nicht so schwierig sein.......

Danke schön!

Volker

P.S.: ich durchforste gerade auch das Forum, bisher habe ich aber nur jemanden gefunden, der anscheinend das gleiche Problem hatte : https://forum.opnsense.org/index.php?topic=8610.0


P.P.S.: Wenn ich HAProxy im debugmodus laufen lasse, scheint bei allen Anfragen IMMER dasselbe Frontend zu antowrten? Wie kann ich denn sehen, welche ACLs geprüft werden?

Auch eine ACL mit Hostnamen klappt nicht??????? Ich sehe den Hostnamen im Debuglog, aber es antortet anscheinend immer noch das ERSTE frontend?

Wenn beide Frontends auf den gleichen Port hören musst du eines der beiden Frontends löschen und bei dem anderen beide Regeln und Zertifikate hinterlegen. (muss hört sich jetzt so nach wissen an, bei mir hat es zumindest funktioniert nachdem ich alle frontends gelöscht habe und nur noch mit einem gearbeitet habe :D die info hatte ich aber auch hier aus dem forum)

Danke!

Ich glaube, jetzt habe ich verstanden, wie das funktioniert : Ein SSL-Frontend Port 443, mehrere Backends mit passenden ACLs(Conditions und Rules) und alles ist schön.

Vielen Dank für den Denkanstoß, so ist es auch irgendwie logisch!!!!!