FHEM hinter ProxyPass mit abweichendem Location-Pfad (statt nur /fhem)

Begonnen von heikoh81, 13 Oktober 2016, 23:36:08

Vorheriges Thema - Nächstes Thema

heikoh81

Hallo zusammen,

ich versuche gerade meine funktionierende Apache2.4 ProxyPass-Konfiguration ein bißchen aufzubohren dahingehend, dass ich für unterschiedliche Benutzer unterschiedliche Unterverzeichnisse mittels ProxyPass einrichten möchte,
FHEM ist dabei der Anfang, es sollen noch einige Webcams folgen, deshalb auch die Benutzerverwaltung.

Allerdings funktioniert bei mir der Zugriff auf FHEM nicht, aber nur dann, wenn ich vom Standardpfad /fhem abweichen möchte.
Hier ein Auszug aus der .conf des betreffenden VirtualHost.

funktioniert:

ProxyRequests       Off
ProxyVia Off
ProxyPreserveHost   Off
ProxyPass /fhem http://localhost:8083/fhem
ProxyPassReverse /fhem http://localhost:8083/fhem

<Proxy *>
Order deny,allow
Allow from all
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Proxy>


funktioniert nicht vollständig - es wird nur der linke Frame mit der room-Liste geladen, ohne jede Style-Formatierung:

ProxyRequests       Off
ProxyVia Off
ProxyPreserveHost   Off
ProxyPass /BENUTZER1_fhem http://localhost:8083/fhem
ProxyPassReverse /BENUTZER1_fhem http://localhost:8083/fhem

<Location /BENUTZER1_fhem>

Order deny,allow
Allow from all
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/.htpasswd
Require user BENUTZER1
</Location>


Was mache ich falsch?
Wo muss ich ansetzen, damit es funktioniert?
Eventuell ProxyHTMLURLMap - weiß aber nicht, wie ich das in obiges Beispiel einbauen müsste?
Wichtig wäre mir der Location-Tag - weil damit kann ich für jede Location einen anderen BENUTZER vorschreiben...

Vielen Dank für eure Antworten.
Viele Grüße,
Heiko

Markus Bloch

Hallo Heiko,

leider ist FHEMWEB nicht dafür ausgelegt um mit ProxyPass umgebogen zu werden. In dem Modul FHEMWEB werden Links immer mit absoluten URL-Pfaden angegeben "/fhem/..." Dieser Pfad ist zwar konfigurierbar, man kann ihn aber nicht komplett löschen. Es muss also immer ein Pfad konfiguriert sein.

Um das zu ermöglichen sind Änderungen an FHEMWEB notwendig um alle URL's auf relative Pfade umzustellen.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

heikoh81

Hallo Markus,

danke für deine Antwort.

Weiß jemand, ob eventuell Apache2 mittels einer ProxyPass-Funktion die absoluten Adressen "on-the-fly" umbiegen kann?
Vielleicht mit ProxyHTMLURLMap?

Viele Grüße,
Heiko

Markus Bloch

Hallo Heiko,

ich würde es eher mit mod_rewrite lösen:

RewriteRule "^/BENUTZER1_fhem(.*)$" "http://localhost:8083/fhem$1" [P]

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Hallo Heiko,

ich habe in Zwischenzeit mal bei mir lokal probiert, was es für Aufwände sind, das Verhalten in FHEM zu ändern. Leider sind überall Stolpersteine versteckt, die man nicht alle auf Anhieb finden kann. Ich habe bspw. alle notwendigen Änderungen in FHEMWEB durchgeführt. Nun gibt es jedoch Probleme mit dem Colorpicker, Tablet-UI und wahrscheinlich noch weitere Sachen, die ich jedoch nicht im Einsatz habe.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)