FHEM über Port 80 (apache2 - Version 2.4.51)

Begonnen von LHBL2003, 19 Dezember 2021, 10:36:37

Vorheriges Thema - Nächstes Thema

LHBL2003

Hallo,

Frage:
Wie kann ich mit einem Frisch aufgesetzten PI4B Debian 11 FHEM via Port 80 aufrufen?

Grund für meine Frage:
Dank RAM mangel auf dem PI3 möchte ich nun hoch rüsten auf einen PI4.
In diesem Fall führe ich eine neu Installation durch.

Funktionierte bisher ohne Probleme:
Ich habe auf meinem PI3 folgende Apache: apache2/oldoldstable,now 2.4.10-10+deb8u16 armhf
Auf dem Pi4: apache2/stable,now 2.4.51-1~deb11u1 armhf

Die Basis zum einrichten auf dem Pi3 hatte ich damals hier her:
https://www.fam-moser.de/blog/computer/fhem/apache-reverse-proxy.html

Ich hatte es minimal angepasst so das ich mit *:80 nutzte.
Somit konnte ich über "http://haussteuerung/" FHEM direkt erreichen.


<IfModule mod_proxy.c>
  <Location *:80>
    ProxyPass http://localhost:8083/fhem
    ProxyPassReverse http://localhost:8083/fhem
  </Location>
</IfModule>


Scheinbar funktioniert dies in der aktuellen Version nicht mehr:

Was fast funktioniert ist:


<IfModule mod_proxy.c>
  <Location />
    ProxyPass http://localhost:8083/fhem
    ProxyPassReverse http://localhost:8083/fhem
  </Location>
</IfModule>



<VirtualHost *:80>
    ServerName null
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyVia Off
    ProxyPass / http://localhost:8083/fhem
    ProxyPassReverse / http://localhost:8083/fhem
</VirtualHost>


Somit bekomme ich zwar FHEM "http://haussteuerung/" aufgerufen, bekomme allerdings dauernd die Meldung auf der Seite.

Connection lost, trying a reconnect every 5 seconds.

Hat jemand eine Ahnung warum?
Vielen Dank für eure Tipps

Gruß Denis

rudolfkoenig

Hat vmtl. was mit websocket zu tun, das muss man extra mit proxy versorgen.
Alternativ setzt du "attr FHEMWEB longpoll 1".

betateilchen

Zitat von: rudolfkoenig am 19 Dezember 2021, 11:16:14
Hat vmtl. was mit websocket zu tun, das muss man extra mit proxy versorgen.

1. Die apache2 Module proxy-wstunnel und rewrite aktivieren, falls noch nicht vorhanden

a2enmod proxy_wstunnel
a2enmod rewrite


2. zugehörige conf Datei für apache2 anpassen, folgendes im Abschnitt <location> ergänzen

RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule .* "wss:/localhost:8083/$1" [P,L]


3. Apache neu starten
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!