Smartvisu über Apache Reverse Proxy - Problem mit Web Socket

Begonnen von thorschtn, 14 März 2019, 16:47:38

Vorheriges Thema - Nächstes Thema

thorschtn

Hallo zusammen.

Ich versuche gerade, FHEM und SmartVISU hinter einem Apache2 Reverse Proxy mit Client Zertifikaten zum laufen zu bekommen (FHEM, Smartvisu und der Reverse Proxy auf einer Maschine).

FHEM und FHEM Web Ssockets laufen einwandfrei über den Reverse Proxy. Die SmartVISU-Seite mit direktem Aufruf ohne Reverse Proxy funktioniert auch.

Smartvisu mit Reverse Proxy funktioniert aber nicht:

Die statische SmartVISU-Seite bekomme ich angezeigt, allerdings keine dynamischen Einträge. Das heißt, die Web Socket Konfiguration im Reverse Proxy für SmartVISU stimmt irgendwie noch nicht.

Eine Verbindung der über den Reverse Proxy aufgerufenen Smartvisu Seite zu FHEM scheint bereits hergestellt zu werden, allerdings kommt das JSON nicht sauber an, ich habe im FHEM-Log folgenden Fehler:

2019.03.13 19:33:53 2: ipc fronthem:127.0.0.1:57872 (ws): error malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/01_fronthem.pm line 231.
decoding ipc msg
2019.03.13 19:33:53 2: ipc fronthem:127.0.0.1:57872 (ws): error malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "}") at ./FHEM/01_fronthem.pm line 231.
decoding ipc msg }


Meine (um Wechselwirkungen mit der FHEM Konfiguration auszuschließen zu Testzwecken auf Smartvisu reduzierte) Konfiguration des Apache2 sieht folgendermaßen aus:


<VirtualHost *:443>

ServerAdmin xxxxxx@web.de
ServerName xxxxxx.myfritz.net

ErrorLog ${APACHE_LOG_DIR}/fhem-error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/fhem-access.log combined

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/xxxxxx.myfritz.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxxxxx.myfritz.net/privkey.pem
SSLCACertificateFile /etc/ssl/cacert.pem
SSLVerifyClient require
SSLVerifyDepth 1

<IfModule mod_rewrite.c>
  RewriteEngine On
          RewriteCond %{REQUEST_URI} ^/smartVISU$ [NC,OR]
          RewriteCond %{REQUEST_URI} ^/smartVISU/$ [NC]
          RewriteRule .* /smartVISU/index.php [R=302,L]
   
  <IfModule mod_proxy.c>
ProxyPreserveHost On
ProxyVia On
# socket.io 1.0+ starts all connections with an HTTP polling request
RewriteCond %{QUERY_STRING} transport=polling [NC]
RewriteRule /(.*) http://localhost:2121/$1 [P]
# When socket.io wants to initiate a WebSocket connection, it sends an
# "upgrade: websocket" request that should be transferred to ws://
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://localhost:2121/$1 [P]
  </IfModule>
</IfModule>

</VirtualHost>


Hat jemand einen Hinweis, was mache ich falsch?

Danke & viele Grüße

Thorsten
NUC - FHEM & HA
MapleCUN, Homematic, 433MHz, AB440, 1-Wire Bewässerung & Pool, Jarolift (Signalduino), Signal Messenger, Denon AVR, LG WebOS, AmazonEcho, Jura S90 (ESP8266), Sonoff, Xiaomi Mii Sauger, Worx SO500i