FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: mdebus am 28 Mai 2018, 16:06:54

Titel: FHEMWEB mit Websockets hinter haproxy
Beitrag von: mdebus am 28 Mai 2018, 16:06:54
Ich versuche gerade, meinen Reverse Proxy von nginx auf haproxy umzustellen, scheitere aber an den Websockets.

Ich bekomme im Browser nur:

fhemweb.js:1111 WebSocket connection to 'wss://meinhostname/fhem?XHR=1&inform=type=status;filter=WEB;since=1527516206;fmt=JSON&fw_id=37591&timestamp=1527516225186' failed:Error during WebSocket handshake: Unexpected response code: 200

Hat jemand einen Konfigurationshinweis für mich?  Hier ist meine Config:


acl     host_fhem               hdr(host) -i    meinhostname

use_backend     bk_fhem         if host_fhem

backend bk_fhem
        server localhost        127.0.0.1:8083          maxconn 1000 weight 10 cookie check
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: mspa am 04 April 2021, 20:59:19
Hi,

hast du für das Problem eine Lösung gefunden? Ich habe ein ähnliches Fehlerbild mit HaProxy und Fhem.

MfG,
Marlon
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: albundy118 am 18 April 2021, 23:09:19
Hallo, ich kämpfe leider mit dem gleich Problem. Aktuell benutze ich haproxy 2.2.13. Mit version 1.8.x läuft es wunderbar.

Beste Grüße
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: albundy118 am 18 April 2021, 23:25:47
Da die websocket session eigentlich nicht mit einem code geschlossen werden sollte, habe ich mal aus meiner haproxy config "option http-server-close" gelöscht.
Damit scheint es jetzt zu gehen. Ihr müsstet prüfen, dass dies weder im defaults, noch im frontend oder backend steht.
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: albundy118 am 23 April 2021, 15:23:29
Hallo, ich wollte nur Bescheid geben, dass leider das Problem bei mir immernoch vorhanden ist. Es hatte nichts mit der option http-server-close zu tun.
Ich hatte in den defaults aus versehen den mode auf tcp geändert.
Wer http mode in haproxy nicht benötigt, kann aber das Problem mit tcp lösen. Leider benötige ich aber http mode, womit das Problem weiterhin vorhanden ist.
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: albundy118 am 23 April 2021, 16:52:55
Ich glaube ich komme dem Problem näher.
Das Problem liegt wohl nicht an HAproxy, da vom Backend das http 200 kommt, hier muss aber 101 für protocol upgrade kommen.

HAproxy benennt alle HTTP header name in lower case um.
Nachdem ich inhaltlich 2 identische Header verglichen hatte, bei einem kommt 200, beim anderen 101, probiert ich mit den Header Namen herum.
Header sind laut RFC nicht case sensitive, aber es scheint, dass FHEM beim HEADER "sec-websocket-key" vs "Sec-WebSocket-Key" Probleme hat.
Sobald dieser HEader in lowever case kommt, erhaltet man eine 200 Antwort. Das ist aus meiner Sicht ein Bug.

Nun weiß ich leider nicht, wie ich potentielle issues bei FHEM melden kann?  Wer kann hier weiterhelfen?

Beste Grüße
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: rudolfkoenig am 23 April 2021, 20:38:52
ZitatSobald dieser HEader in lowever case kommt, erhaltet man eine 200 Antwort. Das ist aus meiner Sicht ein Bug.
Habs versucht zu fixen, bitte um Feedback.
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: albundy118 am 23 April 2021, 22:42:27
Oh, das ging ja super schnell. Danke für promptes angucken.
Ich habe gerade mal update durchlaufen lassen:
2021.04.23 22:20:00.888 1: UPD ./CHANGED
2021.04.23 22:20:00.971 1: UPD ./configDB.pm
2021.04.23 22:20:01.008 1: UPD FHEM/10_FBDECT.pm
2021.04.23 22:20:01.045 1: UPD FHEM/30_HUEBridge.pm
2021.04.23 22:20:01.084 1: UPD FHEM/49_IPCAM.pm
2021.04.23 22:20:01.121 1: UPD FHEM/69_SoftliqCloud.pm
2021.04.23 22:20:01.159 1: UPD FHEM/98_ComfoAir.pm
2021.04.23 22:20:01.195 1: UPD FHEM/98_DOIF.pm
2021.04.23 22:20:01.252 1: UPD FHEM/98_WeekdayTimer.pm
2021.04.23 22:20:01.431 1: UPD FHEM/HttpUtils.pm
2021.04.23 22:20:01.469 1: UPD FHEM/lib/AttrTemplate/mqtt2.template
2021.04.23 22:20:01.615 1: UPD lib/FHEM/Core/Authentication/Passwords.pm


Leider verhällt sich das immer noch fehlerhaft. Zum Vergleich, 2 identische Requests, 1x mit "sec-websocket-key" und der andere mit "Sec-WebSocket-Key".

Welches File wurde denn aktualisiert?
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: albundy118 am 23 April 2021, 23:00:37
Ich sehe gerade, der letzte commit im trac ist ja von 18:06. https://svn.fhem.de/trac/log/trunk/fhem?rev=24315 (https://svn.fhem.de/trac/log/trunk/fhem?rev=24315)
Sorry die doofe Frage, aber muss ich noch etwas warten bis ich den commit sehe?
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: rudolfkoenig am 24 April 2021, 08:32:53
ZitatSorry die doofe Frage, aber muss ich noch etwas warten bis ich den commit sehe?
Normalerweise bis zum naechsten Tag etwa um 8.
Der Kopierprozess startet um 7:45, und dauert wenige Minuten.
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: albundy118 am 24 April 2021, 11:33:22
Danke für die Erklärung.
Habe gerade das Update reinlaufen lassen und es funktioniert jetzt wunderbar!
Vielen Dann für den schnellen Fix!

Beste Grüße
Titel: Antw:FHEMWEB mit Websockets hinter haproxy
Beitrag von: mspa am 25 April 2021, 16:11:16
Danke rudolfkoenig, bei mir läuft es jetzt auch :D.

MfG Marlon