Hallo,
bei meinem Setup habe ich einen ReverseProxy in der DMZ, über den auf ich auf den FHWM Daemon zugreifen möchte.
Daher sind FHEM und ReverseProxy auf getrennten Systemen konfiguriert.
Der ReverseProxy auf Basis von Apache2 anhand der Dokumention im Wiki (https://wiki.fhem.de/wiki/Apache_Authentication_Proxy (https://wiki.fhem.de/wiki/Apache_Authentication_Proxy)) konfiguriert.
Beim Zugriff auf die JQuery JavaScript Dateien wird die Default-Seite ausgeliefert, wenn die Requests über den ReverseProxy kommen.
Daher auch der Fehler in der JS Konsole des Browsers:
Uncaught SyntaxError: Unexpected token '<'
Falls ich die Requests direkt vom System absetze, werden die JS-Seiten korrekt ausgeliefert.
Request direkt
$ curl -s -u user:secret http://fhem-local:8083/fhem/pgm2/jquery.min.js |head -1
/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
Request über ReverseProxy
% curl -s -u user:secret https://reverse-proxy-host/fhem/pgm2/jquery.min.js |head -1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Ich habe die ProxyHeader in der Apache Proxy Konfigruation probehalber deaktiviert (ProxyAddHeaders Off): keine Änderung.
Der Unterschied zwischen den Requests ist ja nur der Aufruf des HTTP GET Kommandos:
Request beim Zugriff vom System direkt
GET /fhem/pgm2/jquery.min.js HTTP/1.1
Host: fhem-local:8083
Authorization: Basic *******************
User-Agent: curl/7.64.0
Accept: */*
Request beim Zugriff vom ReverseProxy
GET /fhem-local:8083/fhem/pgm2/jquery.min.js HTTP/1.1
Host: fhem-local:8083
Authorization: Basic *******************
User-Agent: curl/7.64.0
Accept: */*
Connection: Keep-Alive
Kann ich das mit irgendeiner Konfiguration des FHEM Daemon einstellen kann?
ZitatKann ich das mit irgendeiner Konfiguration des FHEM Daemon einstellen kann?
Was genau meinst Du damit?
Womoeglich das httpHeader Attribut?
>:( Ich habe mein Problem selbst lösen können.
Ich hatte im Location-Block noch neben den Rewrite- auch noch die Proxy-Direktiven eingesetzt.... )m
<Location /fhem>
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /fhem(.*) ws://fhem-local:8083/fhem$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /fhem(.*) http://fhem-local:8083/fhem$1 [P,L]
--> #ProxyPass /fhem http://fhem-local:8083/fhem
--> #ProxyPassReverse /fhem http://fheml-local:8083/fhem
ProxyHTMLURLMap / /fhem/
ProxyHTMLURLMap /fhem/ /fhem/
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/htpasswd.fhem
Require user *********
Order deny,allow
Allow from all
</Location>