HAProxy url rewrite und websockets (Guacamole)

Started by badzoo, March 12, 2018, 03:16:34 PM

Previous topic - Next topic
Hallo,

ich habe 2 Fragen, die ich bisher hier nicht mit den Antworten aus dem Forum lösen konnte:

1. Wie kann ich einen Rewrite der URL von http://firewall/guacamole nach http://backend:8080/guacamole vornehmen ?
Soweit ich das verstanden habe, müsste ich bei den Backend Einstellungen in der Optionsweiterleitung (Custom Option) etwa sowas angeben:

reqrep ^([^\ ]*)\ /guacamole/(.*) \1\ /\2.

Der Backend Server ist auf Port 8080 eingerichtet. Das Rewrite scheint aber nicht zu klappen ??

2. Wie kann ich die WebSocket mit einschließen ??
   
Gucamole Proxy:
https://guacamole.apache.org/doc/gug/proxying-guacamole.html
   
3 Ways to proxy Websockets:
http://blog.silverbucket.net/post/31927044856/3-ways-to-configure-haproxy-for-websockets

Beispiel für Rewrite mit HAProxy:
https://www.haproxy.com/blog/howto-write-apache-proxypass-rules-in-haproxy/

Leider habe ich beides bisher nicht hinbekommen.. Bitte um eure Hilfe !

Gruß
Badzoo

Musst du zu 1) nicht einfach bei Real Server den Port auf 8080 stellen?

March 12, 2018, 03:39:10 PM #2 Last Edit: March 12, 2018, 03:44:34 PM by badzoo
Hi,

ich habe den Real Server auf 8080 laufen.. jedoch klappt der Zugriff noch nicht.

ich bekomme immer 404 Not found, wenn ich http://firewall/guacamole aufrufe. der interne Aufruf (im Nat Netz) über http://backend:8080/guacamole funktioniert einwandfrei. In Firewall konnte ich nichts dazu entdecken.

Und von wo testest du? Vom WAN oder vom LAN aus? HAProxy wird ja sehr wahrscheinlich die URL auf der WAN Seite annehmen und ins LAN übergeben sollen?
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Ich habe zwei Test gemacht:

Vom LAN aus den Aufruf aufs http://backend:8080/guacamole - hier funktioniert alles tadellos
Vom Wan aus den Aufruf auf http://firewall/guacamole  - Fehler 404 Not found.



March 12, 2018, 05:12:30 PM #6 Last Edit: March 12, 2018, 05:23:10 PM by badzoo
Hi,

ich habe gerade noch im HA Log nachgeschaut..

Die Verbindung zur Hauptseite (/) funktioniert:
haproxy[65526]: Connect from XXX.XXX.XXX.XXX:50417 to xxx.xxx.xxx.xx:443 (Main_Frontend/HTTP)

Auf dem BackendServer läuft auf Port 80 eine Webgui und auf Port 8080 Guacamole. Für jeden Port habe ich einen RealServer eingerichtet.

Das zweite Backend für Guacamole (Guacamole_Frontend/HTTP) hat keinen Eintrag. Dort scheint die Verbindung nicht zu klappen.Blockiert hier die Firewall ?  ??? Kein Eintrag gefunden.

Die zugehörige Condition für Guacamole lautet : "Path starts with" Path prefix  "/guacamole*"
Die zugehörige Rule für Guacamole lautet: use specific Backend  -> Guacamole_Backend   (welche auf Port 8080 läuft)

Das ziel ist also:

Aufruf über https://firewall -> Main_Backend  /
Aufruf über https://firewall/guacamole -> Guacamole_Backend  /

Für einen Test habe ich in der Firewall für die WAN Schnittstelle Port 8080 freigegeben.. Danach klappt der Aufruf von Guacamole über http://firewall:8080/guacamole.. Nur nicht direkt ohne Port 8080

Quote from: badzoo on March 12, 2018, 03:16:34 PM
Die zugehörige Condition für Guacamole lautet : "Path starts with" Path prefix  "/guacamole*"
Die zugehörige Rule für Guacamole lautet: use specific Backend  -> Guacamole_Backend   (welche auf Port 8080 läuft)

Mach mal den Asterisk weg.

Ohne Asteriks funktioniert jetzt der Zugriff !! Damit ist Problem 1 gelöst ...

Vielen Dank dafür.. Manachmal kann es so einfach sein..

Hast du auch noch eine Idee zu den Websockets ?
Es funktionert zwar auch so, aber das wäre für die Performance besser, wenn man die Einbinden könnte.

Kann ich von hier aus nicht sagen aber ich würde mal im Browser schauen, ob der Upgrade-Request funktioniert, da Websockets als normaler HTTP-Request beginnen. Vielleicht geht da was schief.