JavaScript Error: Unexpected Token '<' bei externem ReverseProxy

Begonnen von martinw, 07 April 2022, 19:08:18

Vorheriges Thema - Nächstes Thema

martinw

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) 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?


rudolfkoenig

ZitatKann ich das mit irgendeiner Konfiguration des FHEM Daemon einstellen kann?
Was genau meinst Du damit?
Womoeglich das httpHeader Attribut?

martinw

 >:( 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>