Autor Thema: [gelöst] FHEMWEB Reverse Proxy funktioniert nicht mehr 100%  (Gelesen 1152 mal)

Offline eiten

  • Jr. Member
  • **
  • Beiträge: 56
Hallo zusammen,
seit ca. 1 Woche läuft mein Apache Reverse Proxy nicht mehr 100%. Oben auf der Webpage wird immer angezeigt, dass die Verbindung unterbrochen wurde. Hat sich da was an FHEMWEB geändert? Die Konfig schaut so aus:
<Location /fhem>
        ProxyPass http://localhost:8083/fhem
        ProxyPassReverse http://localhost:8083/fhem

        AuthType Basic
        AuthName "Password Required"
        AuthUserFile /etc/fhem.htpasswd
        Require valid-user
        Order deny,allow
        Allow from all
</Location>

Hat jemand eine Idee?

Danke und Gruss, Edi

Edit: Gelöst hinzugefügt, Tippfehler im Titel korrigiert
« Letzte Änderung: 14 Februar 2018, 09:55:09 von eiten »

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16018
Antw:FHEMWEB Reverse Proxy funktioniert nicht mer 100%
« Antwort #1 am: 13 Februar 2018, 19:20:35 »
Du musst websocket für Deine Proxyressource konfigurieren.
Alternativ stelle die entsprechende FHEMWEB Instanz mit longpool Attribut auf 1
« Letzte Änderung: 13 Februar 2018, 19:22:10 von CoolTux »
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline eiten

  • Jr. Member
  • **
  • Beiträge: 56
Antw:FHEMWEB Reverse Proxy funktioniert nicht mer 100%
« Antwort #2 am: 13 Februar 2018, 19:39:59 »
Danke dir. Ich habe mod_proxy_wstunnel jetzt aktiviert. Nur wie ich den Proxy konfigurieren soll, ist mir etwas schleierhaft. Die Adresse ist ja bis auf den Protokollanteil gleich... also einmal https://..., und das wird ja wunderbar zu http://localhost umgeleitet. Wie bringe ich aber nun Apache dazu, aus dem wss://... ein ws:// zu machen?

Danke und Gruss, Edi

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16018
Antw:FHEMWEB Reverse Proxy funktioniert nicht mer 100%
« Antwort #3 am: 13 Februar 2018, 19:42:26 »
Ich weiß leider nicht ob das mit dem wss oder ws so klappt. Ich habe nginx und da einfach 2-3 Zeilen für websocket hinzugefügt.
Da müsste dann Mal ein Indianerfachmann ran.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 19143
Antw:FHEMWEB Reverse Proxy funktioniert nicht mer 100%
« Antwort #4 am: 13 Februar 2018, 20:14:18 »
Seit kurzem wird bei einem Aufruf via Chrome die longpoll Voreinstellung (d.h. falls es nicht explizit gesetzt wurde) auf websocket gesetzt, da der aktuellen Chrome mit "longpoll 1" bei vielen Leuten sehr traege wird, vmtl. ist das ein Chrome Bug.
Falls du auch Chrome verwendest, dann waere "attr WEB longpoll 1" ein Versuch, damit wird explizit HTTP longpolling bestellt.

Offline eiten

  • Jr. Member
  • **
  • Beiträge: 56
Antw:FHEMWEB Reverse Proxy funktioniert nicht mer 100%
« Antwort #5 am: 14 Februar 2018, 09:54:18 »
Hallo zusammen.

Vielen Dank für eure Antworten, ich wurde dadurch in die richtige Richtung geschubbst. Was mich gewundert hat, ist dass der direkte Zugriff mit Chrome über http://ipadresse:8083 wunderbar funktioniert hat, nicht aber über den reverse Proxy. Ich hab's dank dem Stichwort Websockets und dem FHEM-Forum hingekriegt. Die Lösung brachte https://forum.fhem.de/index.php/topic,67271.msg587573.html#msg587573.
Zur Referenz, meine Konfig schaut nun so aus und funktioniert perfekt:
<Location /fhem>
        RewriteEngine On
        RewriteCond %{HTTP:Upgrade} =websocket [NC]
        RewriteRule /fhem(.*)           ws://localhost:8083/fhem$1 [P,L]
        RewriteCond %{HTTP:Upgrade} !=websocket [NC]
        RewriteRule /fhem(.*)           http://localhost:8083/fhem$1 [P,L]
        ProxyPass http://localhost:8083/fhem
        ProxyPassReverse http://localhost:8083/fhem
        ProxyHTMLURLMap /       /fhem/
        ProxyHTMLURLMap /fhem/  /fhem/
        AuthType Basic
        AuthName "Password Required"
        AuthUserFile /etc/fhem.htpasswd
        Require valid-user
        Order deny,allow
        Allow from all
</Location>

Danke euch allen!

Offline kadettilac89

  • Sr. Member
  • ****
  • Beiträge: 766
Antw:FHEMWEB Reverse Proxy funktioniert nicht mer 100%
« Antwort #6 am: 21 Februar 2018, 20:28:11 »
Ich weiß leider nicht ob das mit dem wss oder ws so klappt. Ich habe nginx und da einfach 2-3 Zeilen für websocket hinzugefügt.

Hi CoolTux,

sind das die Zeilen in Nginx, die auch im Wiki enthalten sind ... s. u. Codeblock? Oder gibt es andere empfohlene Werte?

Thx!

      #if ($http_upgrade = "websocket") {
      #  set $my_http_upgrade $http_upgrade;
      #  set $my_connection "upgrade";
      #}

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16018
Antw:[gelöst] FHEMWEB Reverse Proxy funktioniert nicht mehr 100%
« Antwort #7 am: 21 Februar 2018, 20:33:23 »
Ich habe da was anderes, aber auch nur weil ich einfach im Web nach nginx und websocket gesucht habe.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline kadettilac89

  • Sr. Member
  • ****
  • Beiträge: 766
Antw:[gelöst] FHEMWEB Reverse Proxy funktioniert nicht mehr 100%
« Antwort #8 am: 21 Februar 2018, 20:58:26 »
auch ok

Offline olili

  • New Member
  • *
  • Beiträge: 9
Antw:[gelöst] FHEMWEB Reverse Proxy funktioniert nicht mehr 100%
« Antwort #9 am: 05 März 2018, 22:06:31 »
Ich bin seit dem letzten Update auch von den Verbindungsabbrüchen mit Caddy als ReverseProxy betroffen.
Long Poll = 1 erzeugt Hängenbleiber. Daher habe ich wieder abgeschaltet.

Hat jemand eine Config für Caddy um die Websocket-Problematik in den Griff zu bekommen?

O.

Offline heikoh81

  • Sr. Member
  • ****
  • Beiträge: 551
Antw:[gelöst] FHEMWEB Reverse Proxy funktioniert nicht mehr 100%
« Antwort #10 am: 28 August 2018, 18:45:44 »


Hallo zusammen,

ich bin für die Erweiterung meines Apache-Reverse-Proxies so vorgegangen wie hier beschrieben.
attr WEB longpoll websocket
und in /etc/apache2/sites-available/000-default-le-ssl.conf
<Location /fhem>
  RewriteEngine On
  RewriteCond %{HTTP:Upgrade} =websocket [NC]
  RewriteRule /fhem(.*)           ws://localhost:8083/fhem$1 [P,L]
  RewriteCond %{HTTP:Upgrade} !=websocket [NC]
  RewriteRule /fhem(.*)           http://localhost:8083/fhem$1 [P,L]

    ProxyPass http://localhost:8083/fhem
    ProxyPassReverse http://localhost:8083/fhem

  ProxyHTMLURLMap /        /fhem/
  ProxyHTMLURLMap /fhem/     /fhem/

    AuthType Basic
    AuthName "Password Required"
    AuthUserFile /etc/apache2/.htpasswd
    Require user Nexus4 Nexus5 wheider heikoadmin Kindle8GB
    Order deny,allow
    Allow from all
</Location>

Leider erhalte ich bei Zugriff über die Web-Schnittstelle trotzdem weiterhin:
"Connection lost, trying a reconnect every 5 seconds."
Interaktive Änderungen im Interface werden auch nur noch nach reload der Seite abgebildet.

Zugriff über http://192.168.178.230:8083/fhem? ist auch mit attr WEB longpoll websocket in Ordnung.

Stelle ich attr WEB longpoll 1, ist die "Connection lost"-Warnung über den Reverse Proxy weg.
Allerdings hängt auf dem  localhost (d.h. Aufruf von WEB direkt über Chromium auf dem Raspi durch http://localhost:8083/fhem?) das Öffnen von FHEM-Web manchmal komplett (aber nicht immer).
Von anderen PCs im LAN ist aber jederzeit Zugriff auf http://192.168.178.230:8083/fhem? möglich.

Dieses Hängen auf dem localhost ist für mich auch der Grund für das Bemühen, longpoll websocket zum Laufen zu bekommen.

Viele Grüße,
Heiko

 

decade-submarginal