UCS hinter einem Reverse-Proxy (Apache mod_proxy)

german

#1

Guten Tag,

wir möchten unser UCS 4.0 System über eine Webseite verfügbar machen indem wir den dortigen Apache-Webserver als Reverse-Proxy (Apache mod_proxy) einsetzen.

Das Web-Interface www.XXX.de/ucs-demo/ucs-overview/ ist so zwar abrufbar. Es erscheint jedoch nur das Univention-Logo auf grauem Hintergrund.

Dem Apache-Logfile ist zu entnehmen dass nicht jeder Abruf auf die URL /ucs-demo umgesetzt wird (siehe Auszug Logfile unten). entries.json und languages.json werden wieder nur unter /ucs-overview abgerufen - was nicht gehen kann wenn kein /ucs-demo davor gesetzt ist.

Die URL wird möglicher Weise “falsch” vom UCS-System zusammen gesetzt dass von der Proxy-URL ja erst mal nichts weiß.

[ul]
[li]Sollten hier vielleicht Einstellungen zur korrekten URL in der Registry vorgenommen werden bzw. gibt es die Möglichkeit dazu?[/li]
[li]Hat jemand vielleicht schon Erfahrung mit UCS hinter einem solchen Reverseproxy sammeln können?[/li]
[li]Gibt es überhaupt eine Möglichkeit ein UCS-System hinter einem “mod_proxy” zu betrieben?[/li]
[li]Gibt es Empfehlungen und Anleitungen für solch eine Konfiguration?[/li][/ul]

Danke und viele Grüße
Holger Scholz

X.X.X.X - - [11/May/2015:14:09:24 +0200] "GET /ucs-demo/ucs-overview/js/dojo/errors/RequestTimeoutError.js HTTP/1.1" 304 - "https://www.XXX.de/ucs-demo/ucs-overview/" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0" X.X.X.X - - [11/May/2015:14:09:24 +0200] "GET /ucs-demo/ucs-overview/js/ucs/de.json HTTP/1.1" 304 - "https://www.XXX.de/ucs-demo/ucs-overview/" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0" X.X.X.X - - [11/May/2015:14:09:24 +0200] "GET /ucs-demo/ucs-overview/js/dojo/resources/blank.gif HTTP/1.1" 304 - "https://www.XXX.de/ucs-demo/ucs-overview/" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0" X.X.X.X - - [11/May/2015:14:09:24 +0200] "GET /ucs-overview/entries.json HTTP/1.1" 404 1655 "https://www.XXX.de/ucs-demo/ucs-overview/" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0" X.X.X.X - - [11/May/2015:14:09:24 +0200] "GET /ucs-overview/languages.json HTTP/1.1" 404 1657 "https://www.XXX.de/ucs-demo/ucs-overview/" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0"


#2

Moin,

leider scheinen in der Tat viele Ressourcen der UCS-Management-Console von absoluten URLs geladen, und diese erfordern natürlich, dass der Pfad der Proxy-URL identisch mit dem Pfad der URL des eigentlichen UCS-Servers ist.

Sprich: Proxying von z.B. proxy/ucs-demo/ → server/ wird nicht funktionieren. Selbst ein proxy/ucs-overview/ → server/ucs-overview/ genügt nicht, weil teilweise Ressourcen aus anderen Pfaden benutzt werden.

Was aber problemlos gehen müsste, ist eine eigene Subdomäne 1:1 auf den UCS-Server zu proxien. Also ganz grob in etwa so etwas wie das hier:

<VirtualHost *:443> ServerName ucs-demo.your-domain.de SSLEngine on ProxyPass / https://ucs-master/ ProxyPassReverse / https://ucs-master/ </VirtualHost>


#3

Hallo Herr Bunkus,

vielen Dank für diese Informationen.

Viele Grüße
Holger Scholz


#4

Hallo,

ich hänge an der gleichen Baustelle und teile gerne. Allerdings habe ich überhaupt kein “/ucs-demo/” Pfad.
Es ist (noch) nicht perfekt, aber für Management Console funktioniert es zu gefühlten 95%.
Derzeit versuche ich die OXSuite über den Proxy zum laufen zubekommen, aber sobald Proxy ins Spiel kommt, muss auch der Balancer funktionieren und ich bekomme den derzeit nicht richtig konfiguriert. Anyway, viel funktioniert mit folgendem:

ProxyPass /ucs http://10.0.10.100/
ProxyPassReverse /ucs http://10.0.10.100/
ProxyPass /ucs-overview/ http://10.0.10.100/ucs-overview/
ProxyPassReverse /ucs-overview/ http://10.0.10.100/ucs-overview/
ProxyPass /univention-management-console/ http://10.0.10.100/univention-management-console/
ProxyPassReverse /univention-management-console/ http://10.0.10.100/univention-management-console/
ProxyPass /umc/ http://10.0.10.100/umc/
ProxyPassReverse /umc/ http://10.0.10.100/umc/
ProxyPass /umcp/ http://10.0.10.100/umcp/
ProxyPassReverse /umcp/ http://10.0.10.100/umcp/
ProxyPass /appsuite/ http://10.0.10.51/appsuite/
ProxyPassReverse /appsuite/ http://10.0.10.51/appsuite/
ProxyPassMatch ^/((ajax|infostore|publication|realtime|servlet|usm-json|webservices)(/.*)?)$ http://10.0.10.51:8337/

Bei mir werden ein paar Grafiken nicht richtig geladen, aber man kann zumindest fehlerfrei administrieren.
Leider hab ich etwas Streß mit der OXSuite. Sobald ProxyPass ins Spiel kommt, ist der UCS wohl so konfiguriert, dass er über einen Balancer gehen will. Und das scheitert irgendwie bei mir immer noch :slight_smile:
Die Fehlermeldung auf dem Proxy (auf dem UCS kommt keine Fehlermeldung):

Mein Ansatz um das zu lösen ist folgendes in der default-ssl.conf des Proxy Apache2 zu schreiben, aber der Fehler bleibt :frowning:

<Proxy balancer://oxcluster>
Order deny,allow
Allow from all
BalancerMember http://10.0.10.51:8009 timeout=100 smax=0 ttl=60 re$
ProxySet stickysession=JESSIONID|jsessionid scolonpathdelim=On
SetEnv proxy-initial-not-pooled
SetEnv proxy-sendchunked
</Proxy>