[Eisfair] Reverse Proxy für Dienste mit eigenem Webserver?

Dirk Alberti Howy-1 at gmx.de
Di Okt 31 00:14:12 CET 2017


So, nun bin ich schonmal mit Planefinder zum Ziel gekommen, womit mein 
Ansinnen als teilweise gelöst gelten kann.
Der Vollständigkeit halber poste ich hier noch die Lösung.

Da es Nginx sowieso nicht "von allein" kann, habe ich diesen wieder 
entfernt und den ReverseProxy mittels Apache konfiguriert, in Menüpunkt 
3   "Append commands to the httpd.conf (experts only!)"


Am 26.10.2017 um 13:55 schrieb Dirk Alberti:
> Hallo Ansgar,
>
> also dann mal konkreter am Beispiel Planefinder.
>
>
>
> Der Webserver von Planefinder ist im LAN erreichbar über 
> http://192.168.1.5:30053 , wobei das die IP von Eisfair ist, worauf 
> Planefinder läuft.
>
>
> Für Planefinder zusätzlich folgendes in die Konfig eingetragen:
>
> #reverse_proxy
>
>
> location /planefinder/ {
>         proxy_pass            http://127.0.0.1:30053/;
>         }
>
>
> Die Webseite wird richtig dargestellt, auch Links passen und 
> funktionieren, die Unterseiten gehen auf und sehen gut aus, enthalten 
> aber keine Daten wie Diagramme, Karte und empfangene Flugzeuge.
>
> Selbiges Verhalten habe ich auch, wenn ich den Reverse Proxy auf dem 
> Apache direkt konfiguriere.
>
>

Deshalb auch nun ohne Nginx, sondern nur auf dem Apachen.

>
> Ich bin mir fast sicher, es handelt sich nicht um einen Fehler, 
> sondern einfach nur um irgendetwas fehlendes in der 
> ReverseProxy-Konfig.  Ich dachte, Nginx kann das alles aus dem Stand 
> heraus von alleine, deshalb hatte ich ihn installiert.
> Die anderen ReverseProxys für TVHeadend, FHEM und VirtualRadarServer 
> laufen immer noch auf dem Apache und funktionieren auch hinter dem 
> Nginx noch.
>
>

Zuerstmal muss man herausfinden, was der Mini-Webserver des jeweiligen 
Programmes für Directories darstellt. Dazu habe ich einige Anhaltspunkte 
in den Apache-Logs gefunden.

Das wichtigste ist anscheinend, auf die entsprechenden Directories zu 
verweisen, was bei mir die letzten 6 Zeilen erledigen.

Mein (funktionierender) Eintrag des Reverse-Proxy für Planefinder:

<Location /planefinder/>
    ProxyPass http://127.0.0.1:30053/
    ProxyPassReverse http://127.0.0.1:30053/
    ProxyPreserveHost On
    ProxyHTMLEnable On
    ProxyHTMLURLMap /        /planefinder/
    AddOutputFilterByType SUBSTITUTE text/ajax
    AddOutputFilterByType INFLATE;SUBSTITUTE text/css
    AddOutputFilterByType INFLATE;SUBSTITUTE text/javascript
    Substitute "s|/ajax|/planefinder/ajax|i"
    Substitute "s|/json|/planefinder/json|i"
    Substitute "s|/api|/planefinder/api|i"
</Location>


Ich bin mir sicher, das lässt sich auch auf andere Anwendungen anwenden, 
entspechend ergänzt und umgeschrieben.

Vielleicht hilfts ja auch jemand.


Gruß

Dirk





Mehr Informationen über die Mailingliste Eisfair