FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: fs3o1o am 28 Januar 2019, 13:04:46

Titel: FHEMWEB mit nginx
Beitrag von: fs3o1o am 28 Januar 2019, 13:04:46
Hallo,

ich greife auf FHEMWEB über nginx zu. Funktioniert soweit alles, bis auf die Ausgabe aus der Konsole im FHWEMWEB wie z.B. auf "update" oder "{ 1+3*4 }" oder egal was.
Der Eventmonitor funktioniert auch ohne Probleme.

Wenn ich ohne Proxy darauf zugreife tritt das Problem nicht auf.

Kann mir jemand helfen?

Anbei noch meine nginx Config zu FHEMWEB:

# Fhem
        location /fhem/ {
        proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
proxy_pass http://127.0.0.1:8084;
proxy_redirect default;
proxy_buffering off;
        proxy_read_timeout 2073600;
        proxy_ignore_client_abort off;
break;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/***.htpasswd;
        }
Titel: Antw:FHEMWEB mit nginx
Beitrag von: fs3o1o am 28 Januar 2019, 13:36:18
Ich habe mittlerweile rausgefunden, dass wohl folgendes in der fhemweb.js dafür verantwortlich ist.

if(typeof window.console != "undefined")
    console.log(txt);


Woher kommt "window.console"? Wodurch wird der Wert gesetzt?
Titel: Antw:FHEMWEB mit nginx
Beitrag von: Wernieman am 28 Januar 2019, 15:17:48
also bei mir sieht es wie folgt aus (natürlich <....> angepasst):
    location /fhem {
        auth_basic              "Restricted Content";
        auth_basic_user_file    <htpaswd-pfad>/.htpasswd;

        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_http_version      1.1;

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

        proxy_pass              http://<fhem-server>:8083;
        proxy_read_timeout      90;
        proxy_buffering         off;
        client_max_body_size    128M;
    }
Titel: Antw:FHEMWEB mit nginx
Beitrag von: fs3o1o am 28 Januar 2019, 16:34:46
Hallo, danke für die Antwort. Bis auf Details meine Einstellungen. Hab auch mal genau deine versucht, selbes Problem.

Wenn ich über den Proxy in der Kommandozeile etwas eingebe und Enter drücke, wird die Seite neu geladen. Beim direkten Zugriff auf die FHEMWEB instanz nicht.

Ich vermute dass es damit etwas zu tun hat. Ich finde aber nichts woran es liegen könnte...
Titel: Antw:FHEMWEB mit nginx
Beitrag von: Wernieman am 28 Januar 2019, 19:16:01
Dann probiere mal longpoll zu setzen ... nur fürs testen
Titel: Antw:FHEMWEB mit nginx
Beitrag von: fs3o1o am 28 Januar 2019, 20:52:29
Hab Longpoll auf Websocket...
Titel: Antw:FHEMWEB mit nginx
Beitrag von: Wernieman am 29 Januar 2019, 08:23:06
Nee .. setzte mal "longpoll" auf 1.

Websocket dürfte Dein Problem sein ..
Titel: Antw:FHEMWEB mit nginx
Beitrag von: det. am 29 Januar 2019, 15:10:39
Hallo Werniemann,
hab hier mal mitgelesen und Deinen Code in /etc/nginx/templete/security reingeschrieben, ehemals auskommentierte Zeile https://forum.fhem.de/index.php/topic,96461.msg895653.html#msg895653 (https://forum.fhem.de/index.php/topic,96461.msg895653.html#msg895653) wieder reingenommen und noch einen ungewöhnlichen usernamen + sicheres Passwort vergeben. - Läuft! Danke!
Hoffe trotzdem noch auf die gelegentliche Fortsetzung der Nachhilfestunde in Sachen Computersicherheit...
Titel: Antw:FHEMWEB mit nginx
Beitrag von: fs3o1o am 30 Januar 2019, 08:50:58
Danke für den Tip, aber das ist es auch nicht. Hab ich auch schon alles versucht...  :(
Titel: Antw:FHEMWEB mit nginx
Beitrag von: Wernieman am 30 Januar 2019, 08:54:08
Sorry der Nachfrage, aber hast Du mal "genau" meine Version probiert? Kann Dein Problem wirklich nicht nachvollziehen ....
Titel: Antw:FHEMWEB mit nginx
Beitrag von: fs3o1o am 31 Januar 2019, 15:48:40
Problem gelöst   ::)

meine Einstellungen waren die selben... Fast...

meine location war als /fhem/ definiert statt /fhem.
Mit dem abschliessenden Backslash ist sichergestellt, dass z.B. /fhem2 eine eigene location sein kann und nicht schon bei der location /fhem matcht und man dann falsch raus kommt. Problem ist aber dass der Endpunkt der Websocket Connection exakt /fhem ist und eben nicht /fhem/.

Danke für deine Hilfe!

Vielleicht könnte man den Endpunkt der Websocketconnection auf "Webname"/ws wie z.B. /fhem/ws umstellen...
Würde die Reverseproxygeschichte etwas vereinfachen.