Hallo Zusammen,
ist es eig. möglich dass man irgendwie den Zugriff auf die FHEM-Backend-Seite sperrt und nur den Zugriff auf die FTUI-Oberfläche zulässt?
Meinetwegen auch so dass man das FHEM-Backend nur per einer Datei über WinSCP wieder aktivieren kann.
Hat da jemand eine Idee oder Lösung?
VG, Thomas
allowed Device
Guten Morgen.
Zitatallowed Device
Das ist nicht ganz das was ich suche.
Ich möchte viel mehr dass wenn jemand
http://192.168.152.250:8083/fhem in den Browser eingibt, er gar nichts zurück bekommt.
Wenn man aber
http://192.168.152.250:8083/fhem/ftui/index_tablet.html eingibt, soll die FTUI-Seite angezeigt werden.
VG, Thomas
Reverse Proxy aufsetzen.
ZitatReverse Proxy aufsetzen.
Dazu hatte ich gestern auch was gelesen. Hatte jedoch die Hoffnung, es gäbe einen einfacheren Weg.
Aber da werde ich mich wohl mal damit auseinandersetzten müssen.
Vielen Dank! :)
Ist eigentlich nicht schwer. Schau dir zum Beispiel mal das Video von haus-automatisierung an. Da ist zwar immer die Frage, wie aktuell es ist, aber finde das ist für den Einstieg um es sich mal anzuschauen ganz gut.
ZitatIst eigentlich nicht schwer. Schau dir zum Beispiel mal das Video von haus-automatisierung an. Da ist zwar immer die Frage, wie aktuell es ist, aber finde das ist für den Einstieg um es sich mal anzuschauen ganz gut.
Der Vorschlag mit dem Video war gut. Habe mir das heute 3 mal reingezogen und versucht, nachzubauen. Aber irgendwie will das bei mir noch nicht so wie es soll. Da muss ich wohl nochmal deutlich mehr Gehirnschmalz hineinstecken.
Hallo Zusammen,
ich habe mich nun mal intensiv durch das Thema ReverseProxy gekämpft, aber irgendwie will meine Seite nicht angezeigt werden.
Könnte mal bitte jemand drüber schauen?
Not Found
The requested URL /fhem was not found on this server.
Das ist meine Config:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /fhem>
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem
ProxyPassReverse http://localhost:8085/fhem
</Location>
<Directory />
RedirectPermanent / /fhem
</Directory>
<Proxy *>
AuthType Basic
AuthName "Password for FHEM Required"
AuthUserFile /etc/fhem-htpasswd
Require valid-user
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
EDIT: Habe den Fehler gefunden. Ich muss natürlich den default symlink unter "/etc/apache2/sites-enabled" entfernen damit meins genommen wird.
VG, Thomas
Zitat von: ToM_ToM am 23 Juni 2018, 15:07:11
Hallo Zusammen,
ich habe mich nun mal intensiv durch das Thema ReverseProxy gekämpft, aber irgendwie will meine Seite nicht angezeigt werden.
Könnte mal bitte jemand drüber schauen?
Not Found
The requested URL /fhem was not found on this server.
Das ist meine Config:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /fhem>
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem
ProxyPassReverse http://localhost:8085/fhem
</Location>
<Directory />
RedirectPermanent / /fhem
</Directory>
<Proxy *>
AuthType Basic
AuthName "Password for FHEM Required"
AuthUserFile /etc/fhem-htpasswd
Require valid-user
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
VG, Thomas
Läuft der Proxy auf dem selben Server wie FHEM?
ZitatLäuft der Proxy auf dem selben Server wie FHEM?
Hi Leon, da hast du wohl in der gleichen Zeit geantwortet wie ich meinen letzten Beitrag editiert habe. :)
Habe den Fehler gefunden. Ich muss natürlich den default symlink unter "/etc/apache2/sites-enabled" entfernen damit meins genommen wird.
VG und danke, Thomas
Aber auch nur weil Du keinen Server angegeben hast.
Bei einem vhost gibt man immer noch den Hostname mit an.
Beispiel.
fhem01.local.lan
Aufruf wäre dann
http://fhem01.local.lan
ZitatAber auch nur weil Du keinen Server angegeben hast.
Wie gebe ich den denn an?
Ich hatte oben noch
ServerName $host stehen. Das hatte aber auch nicht funktioniert.
Irgendwie bekomme ich zwar die Umleitung direkt auf FHEM hin, aber die Verweise auf die JS und CSS-Dateien innerhalb meiner FUTI funktionieren nicht.
Habe jetzt den ganzen Tag sämtliche Konstellationen per Try&Error durchgespielt.
Kann mal jemand drüber schauen der da Ahnung von hat?
Das ist meine Apache Config:
<VirtualHost *:80>
ServerName $host
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /ftui>
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /fhem(.*) ws://localhost:8085/fhem$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /fhem(.*) http://localhost:8085/fhem$1 [P,L]
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
ProxyPassReverse http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
#ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
ProxyHTMLURLMap / /fhem/
ProxyHTMLURLMap /ftui/ /fhem/
</Location>
<Directory />
RedirectPermanent / /ftui
</Directory>
<Proxy *>
#AuthType Basic
#AuthName "Password for FHEM Required"
#AuthUserFile /etc/fhem-htpasswd
#Require valid-user
#Order deny,allow
#Allow from all
</Proxy>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Meine FTUI-Dateien liegen unter
/opt/fhem/www/tablet
und meine index sowie page files unter
/opt/fhem/www/tablet/tablet_pagebutton_modern
In meinem Index-File versuche ich die Scripte so zu laden:
<script type="text/javascript" src="/fhem/tablet/js/fhem-tablet-ui.js" defer></script>
<!-- Widget analogclock von http://ueberueck.com/index.php/fhem-hausautomatisierung/fhem-tablet-ui/ftui-widget-analogclock -->
<script type="text/javascript" src="/fhem/tablet/lib/analogclock.js"></script>
<!-- define your personal style here, it wont be overwritten -->
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-user2.css" />
<!-- WDTimer Widget Styles -->
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-wdtimer.css" />
<!-- GMaps Widget Styles -->
<link rel="stylesheet" href="/fhem/tablet/css/ftui_gmaps.css" />
Es wird mir die Seite angezeigt, jedoch ohne korrekten Inhalt.
Wenn ich mir dann im Browser den Quelltext anzeigen lasse und auf den Link /fhem/tablet/js/fhem-tablet-ui.js klicke, lande ich auf folgender URL:
http://192.168.152.250/ftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuifhem/tablet/js/fhem-tablet-ui.js
Warum schreibt der dort so oft ftui hintereinander?
Der Opera meldet folgendes dazu:
This webpage has a redirect loop
The webpage at http://192.168.152.250/ftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuifhem/tablet/js/fhem-tablet-ui.js has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.
Jedoch habe ich langsam keine Ideen mehr was ich noch versuchen könnte.
VG, Thomas
So, ich habe es nach einer Anpassung der Apache-Config hinbekommen dass ich jetzt per Click im Quelltext zumindest mal auf die korrekten CSS/JS Dateien komme.
Somit scheinen diese korrekt geladen zu werden.
Neue Apache-Config
<VirtualHost *:80>
ServerName $host
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /ftui>
#Für Logpoll = Websocket die Aufrufe umleiten
#RewriteEngine On
#RewriteCond %{HTTP:Upgrade} =websocket [NC]
#RewriteRule /fhem(.*) ws://localhost:8085/fhem$1 [P,L]
#RewriteCond %{HTTP:Upgrade} !=websocket [NC]
#RewriteRule /fhem(.*) http://localhost:8085/fhem$1 [P,L]
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
ProxyPassReverse http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
#ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
ProxyHTMLURLMap / fhem/
ProxyHTMLURLMap /ftui/ fhem/
</Location>
<Directory />
RedirectPermanent / http://192.168.152.250:8085/
</Directory>
<Proxy *>
#AuthType Basic
#AuthName "Password for FHEM Required"
#AuthUserFile /etc/fhem-htpasswd
#Require valid-user
#Order deny,allow
#Allow from all
</Proxy>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Der Inhalt wird nur nicht angezeigt. Also das was mit Pagebutton geladen werden müsste. Muss ich hier auch noch etwas anpassen?
<div data-type="pagebutton"
data-url="#content_home.html"
data-load="#content_home"
data-active-pattern=".*#content_home.html"
data-icon="fa-home"
data-background-icon="fa-square"
data-fade-duration="fast"
data-return-time="600"
data-on-background-color="lightblue"
data-off-background-color="grey"
data-off-color="black"
class="default big top-space">
</div>
Habe jetzt in der Webconsole vom Firefox folgende Meldung entdeckt wenn ich meine Seite per ReverseProxy aufrufe:
Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf http://192.168.152.250:8085/fhem/tablet/css/fhem-tablet-ui.css. (Grund: fehlendes Token 'x-requested-with' in CORS-Kopfzeile 'Access-Control-Allow-Headers' aus dem CORS-Preflight-Kanal).
das CORS Attribut ist aber bei mir gesetzt und das Token steht auf 'none'. :o
defmod WEBtablet FHEMWEB 8085 global
attr WEBtablet CORS 1
attr WEBtablet csrfToken none
attr WEBtablet iconPath fhemSVG:Wohnungsplan:openautomation:default
attr WEBtablet longpoll websocket
attr WEBtablet plotfork 1
Hi Leon,
könntest du bitte mal drüberschauen ob du vielleicht siehst was ich falsch mache?
Den Cross Origin Fehler konnte ich jetzt los werden, aber ich bekomme immer noch eine Meldung dass die JavaScript Dateien nicht geladen werden konnten.
Meine Apache-Config:
<VirtualHost *:80>
ServerName $host
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /ftui>
#Für Logpoll = Websocket die Aufrufe umleiten
#RewriteEngine On
#RewriteCond %{HTTP:Upgrade} =websocket [NC]
#RewriteRule /ftui(.*) ws://localhost:8085/fhem/ftui$1 [P,L]
#RewriteCond %{HTTP:Upgrade} !=websocket [NC]
#RewriteRule /ftui(.*) http://localhost:8085/fhem/ftui$1 [P,L]
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
ProxyPassReverse http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
#ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
ProxyHTMLURLMap / fhem/www/
ProxyHTMLURLMap /fhem/ fhem/www/
#ProxyHTMLURLMap /ftui/ /var/www/ftui/
</Location>
#<Directory />
# RedirectPermanent /ftui/ /fhem/www/
#</Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Im Pfad /war/www liegen 2 Symlinks
fhem zeigt auf /opt/fhem
ftui zeigt auf /opt/fhem/www
Meine index.html liegt unter /opt/fhem/www/tablet/tablet_pagebutton_modern
In der Index.html werden die Scriptfiles vom Pfad her so eingebunden:
<script type="text/javascript" src="/fhem/tablet/js/fhem-tablet-ui.js" defer></script>
Anbei auch nochmal ein Screenshot der Ausgabe die mir angezeigt wird.
VG, Thomas
Hallo Thomas,
Ich verwende Apache nicht und müsste auch im Netz schauen. Leider derzeit keine Zeit, würde gerne helfen.
Grüße
Okay, ich hatte gedacht du hast das auch bei dir eingerichtet.
Trotzdem danke für dein Feedback.
Habe ich mit nginx eingerichtet.
Grüße
Juhuuuu ich habe es endlich hinbekommen. Der Trick war, meine Pfade in der index.html anzupassen.
<script type="text/javascript" src="/fhem/www/tablet/lib/analogclock.js"></script>
Was für ein schwere Geburt.... :P
Aber Leon, jetzt habe ich trotzdem noch eine Frage an dich: Du hattest mir ja wegen meiner ursprünglichen Frage hier im Thread zu ReverseProxy geraten.
Wie kann ich denn nun verhindern dass ein Benutzer http://FHEM-IP:8085/fhem aufruft? Bzw. wenn ich diesen Port mit BasicAuth versehe, kann dann meinen ReverseProxy so konfigurieren dass beim Aufruf von http://FHEM-IP/ftui diese Login-Angaben nicht nötig sind?
VG, Thomas
Du musst dafür sorgen das nun nur noch über den Reverse Proxy Seiten aufgerufen werden. Dann kannst Du dafür sorgen das einzelne Pfade am Reverse Proxy mit Passwort versehen werden und andere offen sind.
ZitatDu musst dafür sorgen das nun nur noch über den Reverse Proxy Seiten aufgerufen werden.
Das ist leichter gesagt, als getan. Wenn ich dem
WEBtablet das
basicAuth verpasse, werde ich auch über die andere URL nach den Login-Daten gefragt.
Wenn ich den Port 8085 als zusätzlichen virtuellen Host zu meinem Apachen hinzufüge, wird dieser ignoriert da der ja von FHEM geöffnet ist.
VG, Thomas
Zitat von: ToM_ToM am 04 Juli 2018, 16:52:51
Das ist leichter gesagt, als getan. Wenn ich dem WEBtablet das basicAuth verpasse, werde ich auch über die andere URL nach den Login-Daten gefragt.
Wenn ich den Port 8085 als zusätzlichen virtuellen Host zu meinem Apachen hinzufüge, wird dieser ignoriert da der ja von FHEM geöffnet ist.
VG, Thomas
Zeig mal Deine Konfig
Die Apache-Config sieht aktuell so aus:
<VirtualHost *:80>
ServerName $host
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /ftui>
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /ftui(.*) ws://localhost:8085/fhem/ftui$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /ftui(.*) http://localhost:8085/fhem/ftui$1 [P,L]
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem/ftui
ProxyPassReverse http://localhost:8085/fhem/ftui
#ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
ProxyHTMLURLMap / fhem/www/
ProxyHTMLURLMap /fhem/ fhem/www/
#ProxyHTMLURLMap /ftui/images/ /var/ftui/images/
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Schaue ich mir nachher mal an
Okay vielen Dank :)
FHEM ist bei mir normal unter /opt/fhem installiert und
FTUI unter /opt/fhem/www/tablet
VG, Thomas
Sehe gerade wo ist den der Eintrag für Basic auth?
Die habe ich da nicht drin, da ich ja nicht das Tablet, sondern nur den Zugriff aufs Backend sperren möchte.
Zuvor hatte ich es mit zusätzlichem VirtualHost in der Config probiert, einfach Zugriffe auf Port 8085 umzuleiten.
Hatte jedoch auch nicht funktioniert.
<VirtualHost *:8085>
ServerName $host
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /ftui>
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:80/ftui
ProxyPassReverse http://localhost:80/ftui
#ProxyHTMLEnable On
</Location>
</VirtualHost>
Zitat von: ToM_ToM am 04 Juli 2018, 19:42:28
Die habe ich da nicht drin, da ich ja nicht das Tablet, sondern nur den Zugriff aufs Backend sperren möchte.
Zuvor hatte ich es mit zusätzlichem VirtualHost in der Config probiert, einfach Zugriffe auf Port 8085 umzuleiten.
Hatte jedoch auch nicht funktioniert.
<VirtualHost *:8085>
ServerName $host
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /ftui>
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:80/ftui
ProxyPassReverse http://localhost:80/ftui
#ProxyHTMLEnable On
</Location>
</VirtualHost>
Naja das kann ja auch nicht gehen.
ProxyPass http://localhost:80/ftui
ProxyPassReverse http://localhost:80/ftui
Auf Port 80 ist doch nichts außßer der Apache selbst.
Das muss 8085 sein.
Ausserdem
<VirtualHost *:8085>
kann das auch nicht gehen. Auf Port 8085 ist doch schon FHEMWEB da kann dann nicht noch der Apache lauschen.
Leider habe ich wenig Zeit daher nur kurz das Prinzip. Ich habe mich jetzt mal eine Stunde mit den Apache beschäftigt.
apachectl configtest - zum testen Deiner Konfiguration
Danach machst ein
systemctl reload apache2
genereller Aufbau
<VirtualHost *:80> # auf welchen Port soll gelauscht werden
ProxyPreserveHost On
<Location /ftui>
ProxyPass http://p-fhem02.tuxnet.lan:8083/fhem/ftui/ # wohin weiterleiten
ProxyPassReverse http://p-fhem02.tuxnet.lan:8083/fhem/ftui/ # wohin weiterleiten
AuthType Basic
AuthName "PellMon"
AuthUserFile /etc/pellmon/pwd
AuthBasicProvider file
require valid-user
</Location>
<Location />
require all granted
ProxyPass http://p-fhem02.tuxnet.lan:8083/
ProxyPassReverse http://p-fhem02.tuxnet.lan:8083/
</Location>
</virtualhost>
Ganz wichtig. Du musst natürlich die Passwortabfrage innerhalb von FHEMWEB aus schalten!!!!
Und hier siehst Du schon was ich meine. Du musst mehrere locations anlegen. Wobei es nach URL aufrufe geht.
/fhem wird mit Passwort versehen
/ftui wird nicht mit Passwort versehen.
Versuche mal bitte ob Du das umsetzen kannst. Sorry das ich so wenig Zeit gerade habe.
dhttps://serverfault.com/questions/240298/apache-whitelist-a-single-location-but-require-basic-auth-for-everything-else
Das hier sollte Dich noch mal weiter bringen
Hey Leon,
vielen Dank dass du dir die Zeit genommen hast. Ich habe jetzt mal deine Config entsprechend an meine angepasst.
<VirtualHost *:80>
ServerName $host
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /ftui>
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /ftui(.*) ws://localhost:8085/fhem/ftui$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /ftui(.*) http://localhost:8085/fhem/ftui$1 [P,L]
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem/ftui
ProxyPassReverse http://localhost:8085/fhem/ftui
#ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
ProxyHTMLURLMap / fhem/www/
ProxyHTMLURLMap /fhem/ fhem/www/
#ProxyHTMLURLMap /ftui/images/ /var/ftui/images/
AuthType Basic
AuthName "ftui"
AuthUserFile /var/www/httpwds
AuthBasicProvider file
require valid-user
</Location>
<Location />
require all granted
ProxyPass http://localhost:8083
ProxyPassReverse http://localhost:8083
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Aber wenn ich jetzt meine eig. Seite http://192.168.152.250/ftui/tablet_pagebutton_modern/index.html aufrufe, bekomme ich im Browser den Fehler:
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /ftui/tablet_pagebutton_modern/index.html.
Reason: DNS lookup failure for: localhost:8083ftui
Apache/2.4.25 (Debian) Server at 192.168.152.250 Port 80
Sobald ich <Location /> drin habe, scheint ihn das speziellere <Location /ftui> gar nicht mehr zu interessieren.
VG, Thomas
Ändere mal
<Location /ftui>
in
<Location /fhem/ftui>
Wenn das alles nicht klappt reißen wir alles ein und machen es anders.
Du verwendest für tabletui ja die Methode mit httpsrv richtig?
Man kann aber auch einen externen Webserver die ftui Daten ausliefern lassen. Dann hast zwar mobilWeb Port 9085 immer noch, braucht man auch. Und der ist auch ohne Passwort aber du stellst den dann über allowed so ein das nur locahost erlaubt ist.
Und ftui lässt du dann Apache aus liefern mit eigener URL
http://smarthome
Grüße
Guten Morgen.
Also wenn ich die Anpassung entsprechend vornehme, ist meine Seite nicht mehr per http://192.168.152.250/ftui/tablet_pagebutton_modern/index.html erreichbar, aber dafür per http://192.168.152.250/fhem/ftui/tablet_pagebutton_modern/index.html
Allerdings ohne Inhalt. Da muss ich jetzt alle Pfade innerhalb der HTML-Dateien wieder anpassen.
Für http://192.168.152.250 verlangt er jetzt auch nach Benutzer und Passwort.
Gebe ich jedoch weiterhin http://192.168.152.250:8085/fhem ein, komme ich ohne Login drauf.
Und ja, ich verwende aktuell HTTPSRV:
defmod TABLETUI HTTPSRV ftui/ ./www/tablet Tablet-UI
attr TABLETUI DbLogExclude .*
attr TABLETUI group Tablet
attr TABLETUI room SYSTEM->Fhem
VG, Thomas
Guten Morgen,
Wollen wir es dann lieber so machen wie ich geschrieben habe? Also ohne HTTPSRV? Ich denke mal das dieser Weg einfacher wäre.
Grüße
ZitatWollen wir es dann lieber so machen wie ich geschrieben habe? Also ohne HTTPSRV? Ich denke mal das dieser Weg einfacher wäre.
Wenn ich damit mein Ziel erreichen kann, keine Einschränkungen gegenüber der Methode mit HTTPSRV habe und ich dir wertvolle Zeit ersparen kann, dann gerne. :)
Ich muss nur leider gleich zur Arbeit und könnte daher erst heute Abend weitermachen.
Ich kann zwar zwischendrin mal ins Forum schauen und Fragen beantworten, jedoch leider nichts testen.
Du kannst mal bitte versuchen das hier um zu setzen
https://forum.fhem.de/index.php/topic,55132.msg470824.html#msg470824
Im Grunde ist es nichts anderes wie das was Du jetzt auch schon machst. Nur eben ausschließlich für FTUI. Als Web Instanz nimmst weiterhin den 8085. Dieser darf basic auth haben. Am Ende sichern wir den dann noch ab. Diese Instanz wird dann wirklich nur ausschließlich für FTUI Reverse Proxy da sein.
Hi Leon,
diesen Thread hatte ich mir schon zur Hilfe genommen um meine Config aufzubauen. Auch den Trick mit den Symlinks habe ich verwendet.
Die Anzeige funktioniert ja auch. Es muss ja nur noch irgendwie der Zugriff aufs Backend unterbunden werden.
VG, Thomas
Eigentlich sollte doch mit dieser Konfiguration ein Zugriff über den Proxy auf FHEMWEB nicht mehr möglich sein.
Und wenn du es so gemacht hast wozu dann noch das HTTPSRV Device? Lösch das mal bitte.
Hier mal ein Beispiel für nginx
server {
listen [::]:8080 ipv6only=off;
root /var/www/tabletui;
server_name smarthome.tuxnet.local;
location /fhem {
proxy_pass http://localhost:8084/fhem;
proxy_redirect off;
proxy_buffering off;
}
location /pgm2 {
alias /opt/fhem/www/pgm2;
}
location /fhem-tablet-ui {
alias /opt/fhem/www/tablet;
index index.html index.htm index.php;
}
location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php;
}
}
~ ~ ~ ~ ~ ~ ~ ~ server { listen [::]:8080 ipv6only=off; root /var/www/tabletui; server_name smarthome.tuxnet.local; location /fhem { proxy_pass http://localhost:8084/fhem; proxy_redirect off; proxy_buffering off; } location /pgm2 { alias /opt/fhem/www/pgm2; } location /fhem-tablet-ui { alias /opt/fhem/www/tablet; index index.html index.htm index.php; } location / { index index.html index.htm index.php; try_files $uri $uri/ /index.php; } }
Ich habe das im übrigen nie getestet, aber ja wenn ich /fhem Aufrufe kommt FHEMWEB. Aber das gute ist ja das ich die Location /fhem hier in der Konfiguration gut einzeln mit Basic Auth schützen könnte.
Wenn ich smarthome.tuxnet.local:8080 auf rufe kommt sofort tabletui.
Also ich glaube, ich muss mich tatsächlich mit nginx beschäftigen.
Mit Apache bekomme ich das leider nicht zum Laufen. Sobald ich AuthType Digest verwende, kommt permanent die Frage nach Benutzer und Passwort. Egal ob ich es korrekt eingebe oder nicht. Es wird immer behandelt als hätte ich die Login-Daten falsch eingegeben und ich komme nicht auf die Seite.
Zitat
<VirtualHost *:80>
ServerName tablet.bananapi.local
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /ftui>
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /ftui(.*) ws://localhost:8085/fhem/ftui$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /ftui(.*) http://localhost:8085/fhem/ftui$1 [P,L]
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem/ftui
ProxyPassReverse http://localhost:8085/fhem/ftui
#ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
ProxyHTMLURLMap / fhem/www/
ProxyHTMLURLMap /fhem/ fhem/www/
#ProxyHTMLURLMap /ftui/images/ /var/ftui/images/
AuthType Digest
AuthName "ftui"
AuthDigestProvider file
AuthUserFile /var/www/ftui.pwdigest
Require valid-user
Order allow,deny
Allow from all
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Ich sehe keine einzige Zeile wo was zum Basic auth drin steht. Hast du denn eine passwd angelegt?
Ich habe stattdessen Digest verwendet wie im Beispiel des anderen Threads. Und ja, die Datei ist angelegt.
AuthType Digest
AuthName "ftui"
AuthDigestProvider file
AuthUserFile /var/www/ftui.pwdigest
Require valid-user
Order allow,deny
Allow from all
Okay, ich habe den Fehler mit der Passwort-Datei gefunden.
Der Aufrunf von http://192.168.152.250/ftui/ bringt mich jetzt schon mal nach korrekter Login-Eingabe wieder auf die FHEM-Oberfläche.
Und hast du den Link angelegt. Von /var/www/ftui nach /opt/fhem/ftui oder ähnlich?
Lädt denn ftui jetzt
FTUI lädt jetzt wieder. Aber ich habe auch das TABLETUI noch als HTTPSRV Device angelegt.
Die FTUI-Oberfläche kann ich jetzt wieder über http://192.168.152.250/ftui/tablet_pagebutton_modern/index.html aufrufen.
Aber somit bin ich jetzt wieder wie am Anfang, nur dass ich jetzt zusätzlich noch das Frontend mit abgesichert habe.
Wenn ich das HTTPSRV Device lösche, bringt mich der Link http://192.168.152.250/ftui/tablet_pagebutton_modern/index.html auf die FHEM-Seite (nur ohne korrektem Layout).
Um das Frontend anzuzeigen brauche ich jetzt http://192.168.152.250/ftui/tablet/tablet_pagebutton_modern/index.html
Allerdings komme im Frontend nun lauter Fehlermeldungen hoch Authorizateion required
Mir erschließt sich die Logik noch nicht ganz wie jetzt im Hintergrund die Abfragen an Port 8085 stattfinden. Dort verwende ich ja jetzt auch BasicAuth um das Backend abzusichern.
Anbei noch ein Screenshot mit den Symlinks
Sobald ich in meiner Config folgendes verwende:
ProxyPass http://localhost:8085/fhem
ProxyPassReverse http://localhost:8085/fhem
verlangt der Browser nach den Login-Daten von FHEM.
Hier nochmal meine aktuelle Config mit der jetzt alles über den Apache läuft und nicht mehr über HTTPSVR.
<VirtualHost *:80>
ServerName tablet.bananapi.local
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /fhem>
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /fhem(.*) ws://localhost:8085/fhem$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /fhem(.*) http://localhost:8085/fhem$1 [P,L]
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem
ProxyPassReverse http://localhost:8085/fhem
ProxyHTMLEnable On
SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Symlink habe ich jetzt auch angepasst und somit nur noch einen (siehe Screenshot).
Im Prinzip steht jetzt nur noch das LOGIN-Thema aus.
Ich habe schon versucht, den Weiterleitungs-Urls die Login-Daten mitzugeben
ProxyPass USER_NAME:PASSWORD@http://localhost:8085/fhem
Hat aber leider auch nicht geholfen.
Zitat von: ToM_ToM am 07 Juli 2018, 16:10:51
Ich habe schon versucht, den Weiterleitungs-Urls die Login-Daten mitzugeben
ProxyPass USER_NAME:PASSWORD@http://localhost:8085/fhem
Hat aber leider auch nicht geholfen.
Das verstehe ich jetzt gar nicht. Du solltest dich das Basic auth bei FHEM rausnehmen? Und wieso ist ein Link unter /var/www/ auf fhem. Eigentlich brauchst doch nur einen für ftui.
ZitatDas verstehe ich jetzt gar nicht. Du solltest dich das Basic auth bei FHEM rausnehmen? Und wieso ist ein Link unter /var/www/ auf fhem. Eigentlich brauchst doch nur einen für ftui.
Und wie sichere ich dann das Backend gegen Zugriff ab wenn ich das rausnehme? Das verstehe ich leider noch nicht so ganz.
Wenn ich nur einen ftui-Verzeichnis habe, wie soll ich dann den Proxy konfigurieren? Muss mir das morgen nochmal in Ruhe anschauen.
Aber jetzt erst mal Gute Nacht! ;)
Du musst unterscheiden zwischen TabletUI und FHEM. FHEM kann man auch noch anders einschränken wie nur durch Passwort.
Du kannst allowedFrom verwenden um den Zugriff nur von locahost zu erlauben.
ZitatDu kannst allowedFrom verwenden um den Zugriff nur von locahost zu erlauben.
Aaah... jetzt verstehe ich. :) Cool.
Aber so richtig komme ich immer noch nicht ans Ziel. Ich habe jetzt die letzten 4 Stunden sämtliche Einstellungen und Variationen durchprobiert.
Ziel ist, wenn der User
http://192.168.152.250/frontend eingibt, soll er die FTUI-Oberfläche sehen und mehr nicht.
Meine Config sieht nun so aus:
<VirtualHost *:80>
ServerName tablet.bananapi.local
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
AddDefaultCharset UTF-8
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /frontend>
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /frontend(.*) ws://localhost:8085/fhem$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /frontend(.*) http://localhost:8085/fhem$1 [P,L]
# Websockets
ProxyPass ws://localhost:8085/fhem/tablet
ProxyPassReverse ws://localhost:8085/fhem/tablet
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem/tablet
ProxyPassReverse http://localhost:8085/fhem/tablet
ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
#ProxyHTMLURLMap / /fhem/
#ProxyHTMLURLMap /frontend/ /frontend/
#AuthType Basic
#AuthName "Password Required"
#AuthUserFile /var/www/basicAuth.htpasswd
#Require valid-user
#Order allow,deny
#Allow from all
SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Anbei auch nochmal die Screenshots was ich aktuell mit dieser Config zu sehen bekomme wenn ich
http://192.168.152.250/frontend eingebe und
http://192.168.152.250/frontend/tablet_pagebutton_modern/index.htmlDen Symlink _fhem im Screenshot kannst du ignorieren. Dem habe ich einen Unterstrich verpasst weil er in dieser Config nicht verwendet wird.
In meiner index.html binde ich die Scripte so ein:
<!-- <script type="text/javascript" src="/fhem/pgm2/jquery.min.js"></script> -->
<script type="text/javascript" src="/frontend/js/fhem-tablet-ui.js" defer></script>
<!-- Widget analogclock von http://ueberueck.com/index.php/fhem-hausautomatisierung/fhem-tablet-ui/ftui-widget-analogclock -->
<script type="text/javascript" src="/frontend/lib/analogclock.js"></script>
<!-- define your personal style here, it wont be overwritten -->
<link rel="stylesheet" href="/frontend/css/fhem-tablet-ui-user2.css" />
VG, Thomas
Kann das leider zur Zeit nicht nachstellen. Zu wenig Zeit.
Eventuell findest du noch Hinweise im TabletUI Forum. Da mal rein gehen und oben in der Suche Apache eingeben.
Habe es gerade eine Stunde versucht. Ich bekomme es jedenfalls nicht so schön hin wie mit nginx.
Daher meine Empfehlung. Nimm nginx
Guten Morgen.
Danke dass du dir die Zeit dafür nimmst, es zu testen.
Ich habe es jetzt soweit hinbekommen dass ich via http://192.168.152.250/frontend/index.html auf die FTUI-Oberfläche komme und wenn ich den Teil frontend oder index weglasse, nicht mehr in FHEM lande.
Gebe ich allerdings http://192.168.152.250/frontend/index.html/ ein, also mit einem Slash am Ende, dann wird mir das FHEM-Backend angezeigt.
<VirtualHost *:80>
ServerName tablet.bananapi.local
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
AddDefaultCharset UTF-8
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /frontend>
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /frontend(.*) ws://localhost:8085/fhem$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /frontend(.*) http://localhost:8085/fhem$1 [P,L]
# Websockets
ProxyPass ws://localhost/fhem
ProxyPassReverse ws://localhost/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost/fhem/www/tablet/tablet_pagebutton_modern
ProxyPassReverse http://localhost/fhem/www/tablet/tablet_pagebutton_modern
ProxyHTMLEnable On
SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
<Location /fhem>
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /fhem(.*) ws://localhost:8085/fhem$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /fhem(.*) http://localhost:8085/fhem$1 [P,L]
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem
ProxyPassReverse http://localhost:8085/fhem
ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
#ProxyHTMLURLMap / /fhem/
#ProxyHTMLURLMap /fhem/ /fhem/
#AuthType Basic
#AuthName "Password Required"
#AuthUserFile /var/www/basicAuth.htpasswd
#Require valid-user
#Order allow,deny
#Allow from all
SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Mit nginx bekomme ich das so hin wie ich das gerne hätte, dass man sich nur FTUI anzeigen lassen kann und nicht mehr aufs FHEM-Backend kommt?
Ich bin soweit gekommen das ich einfach nur
http://tablet.bananapi.local
eingegeben habe und dann auf die FTUI Seite gekommen bin. Leider habe ich aber nur das Hintergrundbild gesehen. Laut F12 Entwicklerkonsole konnte er /gmp2 oder so ähnlich nicht laden.
Wie gesagt konnte ich bei meinem NGINX auch /fhem eingeben und war dann auf FHEM. ABER!!! Du kannst ja einen Browser nehmen wo die Start URL festgesetzt ist. Du kannst die URL Zeile entfernen so das man nur über das eigentliche FTUI Menü navigieren kann. Das kannst Du mit dem Browser machen.
Du kannst die FHEM Instanz welche Du über nginx oder auch Apache aufrufst doch kastrieren. Du kannst ähnlich wie beim webhook Wikieintrag alle Räume unsichtbar machen so das man gar nichts mehr sieht.
https://wiki.fhem.de/wiki/GEOFANCY#Webhook_weiter_absichern
ZitatLeider habe ich aber nur das Hintergrundbild gesehen. Laut F12 Entwicklerkonsole konnte er /gmp2 oder so ähnlich nicht laden.
Ja das kenne ich. Hatte auch ewig gebraucht um es mit der Konfiguration jetzt hinzubekommen. Es sind im Prinzip 3 Punkte die man hinbekommen muss.
1. genereller Seitenaufruf
2. das korrekte Laden der JS und CSS - Files aus den richtigen Pfaden
3. Asynchrones Aktualisieren im Hintergrund damit das Frontend Statusänderungen mitbekommt.
Das mit dem Aufruf über http://tablet.bananapi.local funktioniert bei mir leider nicht. Ich muss immer den Weg über die IP gehen. Aber damit kann ich leben.
Dann behalte ich mal meine Konfig so bei (sie läuft ja jetzt so) und passe das Backend von FHEM auf Port 8085 soweit an dass man dort nichts mehr machen kann.
Vielen vielen Dank nochmal für deine Hilfe! :D
Gerne doch.
Hier siehst Du mal wie es bei mir aus sieht wenn man die FHEM Instanz aufruft
Ein Problem habe ich aber leider noch mit der Apache/Proxy-Lösung.
Umlaute und Gradzeichen etc. werden nicht korrekt dargestellt.
In der Apache Config habe ich folgendes eingefügt:
AddDefaultCharset UTF-8
In der index.html habe ich auch folgendes im Header:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Aber irgendwie werden die Sonderzeichen nicht korrekt dargestellt. Hast du da evtl. noch eine Idee?
VG, Thomas
Zitat von: ToM_ToM am 09 Juli 2018, 19:44:29
Ein Problem habe ich aber leider noch mit der Apache/Proxy-Lösung.
Umlaute und Gradzeichen etc. werden nicht korrekt dargestellt.
In der Apache Config habe ich folgendes eingefügt:
AddDefaultCharset UTF-8
In der index.html habe ich auch folgendes im Header:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Aber irgendwie werden die Sonderzeichen nicht korrekt dargestellt. Hast du da evtl. noch eine Idee?
VG, Thomas
Leider nein. Sorry. Müsste da auch erstmal im Netz schauen.
Ich habe es jetzt geschafft dass wenn man nur die IP eingibt, auch automatisch auf FTUI weitergeleitet wird.
Nur bei Falscheingaben (Pfade die nicht existieren), landet man nun noch aufs FHEM-Backend. Das habe ich aber wie du gesagt hast, soweit nackig gemacht dass dort nur noch eine leere Seite kommt.
Aber das mit den fehlerhaften Umlauten, Gradzeichen usw. treibt mich noch in den Wahnsinn.
Kann man irgendwie prüfen was tatsächlich für ein Zeichensatz im Browser ankommt?
Auch die Meta-Angaben helfen nichts. Habe es mit <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
als auch mit <meta charset="UTF-8">
in der index.html probiert.
In der Apache Config habe ich auch AddCharset UTF-8 .utf8 und ProxyHTMLCharsetOut UTF-8 getestet, aber bringt leider auch nichts.
<VirtualHost *:80>
ServerName tablet.bananapi.local
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
#ProxyHTMLCharsetOut UTF-8
#ProxyHTMLMeta ON
RewriteEngine On
RewriteOptions InheritDownBefore
#Aufruf von http://IP-ADDRESS umleiten auf http://IP-ADDRESS/frontend/tablet_pagebutton_modern/index.html
RewriteRule ^/$ %{REQUEST_SCHEME}://%{HTTP_HOST}/frontend/tablet_pagebutton_modern/index.html [redirect]
#Aufruf von http://IP-ADDRESSE/frontend umleiten auf http://IP-ADDRESS/tablet_pagebutton_modern/frontend/index.html
RewriteRule ^/frontend$ %{REQUEST_SCHEME}://%{HTTP_HOST}/frontend/tablet_pagebutton_modern/index.html [redirect]
<Location /frontend>
#AddCharset UTF-8 .utf8
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /frontend(.*) ws://localhost$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /frontend(.*) http://localhost$1 [P,L]
# Websockets
ProxyPass ws://localhost/fhem
ProxyPassReverse ws://localhost/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost/fhem/www/tablet
ProxyPassReverse http://localhost/fhem/www/tablet
ProxyHTMLEnable On
SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
<Location /fhem>
#AddCharset UTF-8 .utf8
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /fhem(.*) ws://localhost:8085/fhem$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /fhem(.*) http://localhost:8085/fhem$1 [P,L]
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem
ProxyPassReverse http://localhost:8085/fhem
ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
#ProxyHTMLURLMap / /frontend/
#ProxyHTMLURLMap /frontend/ /frontend/
#AuthType Basic
#AuthName "Password Required"
#AuthUserFile /var/www/basicAuth.htpasswd
#Require valid-user
#Order allow,deny
#Allow from all
SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Ich habe es endlich hinbekommen.
Schuld war die Kombination aus
SetOutputFilter INFLATE;proxy-html;DEFLATE
und
ProxyHTMLEnable On
Mit folgender Config läuft es jetzt.
<VirtualHost *:80>
ServerName $HOST
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
#ProxyHTMLCharsetOut UTF-8
#ProxyHTMLMeta ON
CharsetSourceEnc UTF-8
#CharsetDefault ISO-8859-1
#AddDefaultCharset UTF-8
RewriteEngine On
RewriteOptions InheritDownBefore
#Aufruf von http://IP-ADDRESS umleiten auf http://IP-ADDRESS/frontend/tablet_pagebutton_modern/index.html
RewriteRule ^/$ %{REQUEST_SCHEME}://%{HTTP_HOST}/frontend/tablet_pagebutton_modern/index.html [redirect]
#Aufruf von http://IP-ADDRESSE/frontend umleiten auf http://IP-ADDRESS/tablet_pagebutton_modern/frontend/index.html
RewriteRule ^/frontend$ %{REQUEST_SCHEME}://%{HTTP_HOST}/frontend/tablet_pagebutton_modern/index.html [redirect]
<Location /frontend>
#AddCharset UTF-8 .utf8
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /frontend(.*) ws://localhost$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /frontend(.*) http://localhost$1 [P,L]
# Websockets
ProxyPass ws://localhost/fhem
ProxyPassReverse ws://localhost/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost/fhem/www/tablet
ProxyPassReverse http://localhost/fhem/www/tablet
#ProxyHTMLEnable On
#SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
<Location /fhem>
#AddCharset UTF-8 .utf8
#Für Logpoll = Websocket die Aufrufe umleiten
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /fhem(.*) ws://localhost:8085/fhem$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /fhem(.*) http://localhost:8085/fhem$1 [P,L]
# Websockets
ProxyPass ws://localhost:8085/fhem
ProxyPassReverse ws://localhost:8085/fhem
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://localhost:8085/fhem
ProxyPassReverse http://localhost:8085/fhem
#ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
#ProxyHTMLURLMap / /frontend/
#ProxyHTMLURLMap /frontend/ /frontend/
#AuthType Basic
#AuthName "Password Required"
#AuthUserFile /var/www/basicAuth.htpasswd
#Require valid-user
#Order allow,deny
#Allow from all
#SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Ohne Scheiß. Ich bin wahnsinnig stolz auf Dich und freu mich das Du es geschafft hast.
8) 8)
ZitatOhne Scheiß. Ich bin wahnsinnig stolz auf Dich und freu mich das Du es geschafft hast.
Haha. Danke. Aber ich freue mich noch viel mehr. Hätte nicht gedacht dass das so eine schwierige Geburt wird. Aber so ist es ja meistens in der Programmierung. Die Dinge die man sich einfach vorstellt, kosten am Ende am meisten Nerven.
Vielen vielen Dank nochmal für deine Unterstützung. :)
[emoji1303][emoji123][emoji6]
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Zitat von: ToM_ToM am 14 Juli 2018, 21:56:47
Haha. Danke. Aber ich freue mich noch viel mehr. Hätte nicht gedacht dass das so eine schwierige Geburt wird. Aber so ist es ja meistens in der Programmierung. Die Dinge die man sich einfach vorstellt, kosten am Ende am meisten Nerven.
Vielen vielen Dank nochmal für deine Unterstützung. :)
Gerne. Aber so viel war das ja nicht. Eher so Händchen halten :), der größte Dank gebührt Dir selbst. Darauf eine kühle 👱
Irgendwie habe ich mich zu früh gefreut... :(
Meine Hauptseite läuft zwar super, aber eine andere Seite bekomme ich nicht zum laufen. 2 Seiten konnte ich durch "Convert to UTF-8" im Notepad++ zum laufen bekommen, aber bei der einen funktioniert dieser Trick leider nicht. Irgendwas läuft über den Proxy mit dem Charset Encoding nicht sauber.
Das kostet mich wohl noch einiges Zeit und Nerven.