1
German - Deutsch / HAProxy: Rule Verständnisfrage
« on: May 13, 2019, 11:27:13 pm »
Hallo zusammen
Ich bin am Konfigurieren des HAProxy und bringe das Teil einfach nicht richtig zum Laufen. Eigentlich ist es ein einfaches Testszenario in welchem zwei verschiedene Domains (test1.domain.com und test2.domain.com) auf
dem selben Port erreichbar sein sollen (Port HTTP 89), ohne SSL nur HTTP.
Meines Erachtens habe ich alles richtig konfiguriert:
1. NAT Rule erstellt: Anfragen via Port 89 werden auf HAProxy / OpnSense weitergeleitet
2. HAProxy: 2 Real Server erstellt
3. HAProxy: 2 verschiedene Conditions erstellt (Host contains test1.domain.com und test2.domain.com)
4. HAProxy: 2 Rules erstellt
5. HAProxy: 2 Backend Pools erstellt mit Zuweisung des jeweiligen Real Servers (Rest default, keine Rules etc.)
6. HAProxy: 2 Public Services erstellt (Listener)
Ich vermute nun ein Problem in den Rules und dort in der Execute function. In älteren Versionen von OpnSense gab es dort die Möglichkeit "Use specified Backend Pool" anzugeben. Nun gibt es diesen Eintrag nicht mehr. Ich sehe einzig "Override server in Backend Pool" und "Map domains to backend pools using a map file". Ist einer dieser Optionen die "Nachfolgefunktion"? Wenn ja, wie muss ich das einrichten, dass aufgrund der Rule
(mit entsprechender Condition "Host contains...") auf den Backend Pool und somit auf den entsprechenden Server zugegriffen wird?
Testmässig habe ich nun mal unter der Rule "Map domains to backend pools using a map file" ausgewählt mit Parameter Map file: none und Default backend pool: der jeweilige Backend Pool. Weiter oben die entsprechende Condition und unter "Logical operator for conditions" AND (default). Keine Ahnung ob das richtig ist und so funktionieren könnte. Im HAProxy Log File sehe ich, dass jeweils Requests an einen der Public Service ankommt. Dort erscheint dann die folgende Meldung:
haproxy[55878]: xxx.xxx.xxx.xxx:49773 [13/May/2019:23:00:10.104] Listener_Test1_89 Listener_Test1_89/<NOSRV> -1/-1/-1/-1/0 503 212 - - SC-- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Die Backend Webserver laufen aber problemlos.
Was ich auch nicht verstehe ist die Tatsache, dass gemäss Log File die Requests immer an den gleichen Public Service gelangen (obwohl bei beiden eine entsprechende Rule (mit Condition host match) hinterlegt ist).
Weiss hier evtl. jemand Rat, ich bin mittlerweile verzweifelt und weiss nicht mehr, wo das Problem liegen könnte.
Vielen Dank für eure wertvolle Hilfe.
Gruss Thomas
Ich bin am Konfigurieren des HAProxy und bringe das Teil einfach nicht richtig zum Laufen. Eigentlich ist es ein einfaches Testszenario in welchem zwei verschiedene Domains (test1.domain.com und test2.domain.com) auf
dem selben Port erreichbar sein sollen (Port HTTP 89), ohne SSL nur HTTP.
Meines Erachtens habe ich alles richtig konfiguriert:
1. NAT Rule erstellt: Anfragen via Port 89 werden auf HAProxy / OpnSense weitergeleitet
2. HAProxy: 2 Real Server erstellt
3. HAProxy: 2 verschiedene Conditions erstellt (Host contains test1.domain.com und test2.domain.com)
4. HAProxy: 2 Rules erstellt
5. HAProxy: 2 Backend Pools erstellt mit Zuweisung des jeweiligen Real Servers (Rest default, keine Rules etc.)
6. HAProxy: 2 Public Services erstellt (Listener)
Ich vermute nun ein Problem in den Rules und dort in der Execute function. In älteren Versionen von OpnSense gab es dort die Möglichkeit "Use specified Backend Pool" anzugeben. Nun gibt es diesen Eintrag nicht mehr. Ich sehe einzig "Override server in Backend Pool" und "Map domains to backend pools using a map file". Ist einer dieser Optionen die "Nachfolgefunktion"? Wenn ja, wie muss ich das einrichten, dass aufgrund der Rule
(mit entsprechender Condition "Host contains...") auf den Backend Pool und somit auf den entsprechenden Server zugegriffen wird?
Testmässig habe ich nun mal unter der Rule "Map domains to backend pools using a map file" ausgewählt mit Parameter Map file: none und Default backend pool: der jeweilige Backend Pool. Weiter oben die entsprechende Condition und unter "Logical operator for conditions" AND (default). Keine Ahnung ob das richtig ist und so funktionieren könnte. Im HAProxy Log File sehe ich, dass jeweils Requests an einen der Public Service ankommt. Dort erscheint dann die folgende Meldung:
haproxy[55878]: xxx.xxx.xxx.xxx:49773 [13/May/2019:23:00:10.104] Listener_Test1_89 Listener_Test1_89/<NOSRV> -1/-1/-1/-1/0 503 212 - - SC-- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Die Backend Webserver laufen aber problemlos.
Was ich auch nicht verstehe ist die Tatsache, dass gemäss Log File die Requests immer an den gleichen Public Service gelangen (obwohl bei beiden eine entsprechende Rule (mit Condition host match) hinterlegt ist).
Weiss hier evtl. jemand Rat, ich bin mittlerweile verzweifelt und weiss nicht mehr, wo das Problem liegen könnte.
Vielen Dank für eure wertvolle Hilfe.
Gruss Thomas