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;
}
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?
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;
}
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...
Dann probiere mal longpoll zu setzen ... nur fürs testen
Hab Longpoll auf Websocket...
Nee .. setzte mal "longpoll" auf 1.
Websocket dürfte Dein Problem sein ..
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...
Danke für den Tip, aber das ist es auch nicht. Hab ich auch schon alles versucht... :(
Sorry der Nachfrage, aber hast Du mal "genau" meine Version probiert? Kann Dein Problem wirklich nicht nachvollziehen ....
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.