Autor Thema: FHEMWEB mit Websockets hinter haproxy  (Gelesen 1470 mal)

Offline mdebus

  • New Member
  • *
  • Beiträge: 4
FHEMWEB mit Websockets hinter haproxy
« 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

Offline mspa

  • New Member
  • *
  • Beiträge: 8
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #1 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

Offline albundy118

  • New Member
  • *
  • Beiträge: 20
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #2 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

Offline albundy118

  • New Member
  • *
  • Beiträge: 20
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #3 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.

Offline albundy118

  • New Member
  • *
  • Beiträge: 20
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #4 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.

Offline albundy118

  • New Member
  • *
  • Beiträge: 20
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #5 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

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24378
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #6 am: 23 April 2021, 20:38:52 »
Zitat
Sobald 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.

Offline albundy118

  • New Member
  • *
  • Beiträge: 20
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #7 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?

Offline albundy118

  • New Member
  • *
  • Beiträge: 20
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #8 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
Sorry die doofe Frage, aber muss ich noch etwas warten bis ich den commit sehe?

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24378
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #9 am: 24 April 2021, 08:32:53 »
Zitat
Sorry 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.

Offline albundy118

  • New Member
  • *
  • Beiträge: 20
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #10 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

Offline mspa

  • New Member
  • *
  • Beiträge: 8
Antw:FHEMWEB mit Websockets hinter haproxy
« Antwort #11 am: 25 April 2021, 16:11:16 »
Danke rudolfkoenig, bei mir läuft es jetzt auch :D.

MfG Marlon