FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: martinw am 07 April 2022, 19:08:18

Titel: JavaScript Error: Unexpected Token '<' bei externem ReverseProxy
Beitrag von: martinw am 07 April 2022, 19:08:18
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?

Titel: Antw:JavaScript Error: Unexpected Token '<' bei externem ReverseProxy
Beitrag von: rudolfkoenig am 07 April 2022, 19:14:50
ZitatKann ich das mit irgendeiner Konfiguration des FHEM Daemon einstellen kann?
Was genau meinst Du damit?
Womoeglich das httpHeader Attribut?
Titel: SOLVED: JavaScript Error: Unexpected Token '<' bei externem ReverseProxy
Beitrag von: martinw am 07 April 2022, 19:54:02
 >:( 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>