Home › Forum › Nuclos Bedienung › Administration und Installation › WebClient hinter Reverse Proxy
- Dieses Thema hat 4 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahren, 10 Monaten von
Frank Pavlic.
-
AutorBeiträge
-
5 Januar 2016 um 16:22 Uhr #8718
Matthias KÖPER
TeilnehmerWir betreiben ein Testsystem in einem OpenVZ-Container hinter einem Reverse Proxy (nginx). Der Zugriff auf den Webclient will aber nicht laufen, obwohl der Java Client ordentlich hinter dem Proxy läuft.
Gibt es für ein vergleichbares Szenario bereits eine geeignete apache-Konfiguration o.ä.?
Hier unsere nginx-Konfiguration:
server {
listen 443;
server_name publicname.server.tld;location /nuclos {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://container.server.tld:80/nuclos;
proxy_redirect off;
}
location /webclient {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "https";
proxy_pass http://container.server.tld:80/webclient;
proxy_redirect off;
}
}
Gibt es einen Parameter, mit dem wir steuern könnrn, welche Base-URL der Webclient ausgibt? Der Anwender im Web ruft die URL https://publicname.server.tld/webclient auf, während die Nuclos-Instanz nur container.server.tld kennt (dort „lebt“ sie ja auch) und nur via http kommuniziert. Oder müssen wir unser Glück mit einer Rewrite-Rule versuchen?
Hier noch der Connector für den Java-Client aus der server.xml:
Danke für Tipps!
7 Januar 2016 um 09:10 Uhr #8720Frank Pavlic
TeilnehmerHallo,
ich bin mir nicht sicher, aber ich meine, der Connector-Parameter deines Tomcat-Containers „scheme“ ist falsch konfiguriert, es müsste scheme=http heissen. Dein Connector ist nicht als SSL-Connector konfiguriert, lediglich Proxy ist eingeschaltet.Gruß
Frank8 Januar 2016 um 13:48 Uhr #8722Matthias KÖPER
TeilnehmerHallo Frank,
wenn ich „scheme“ auf http stelle, schimpft nginx folgendermaßen:
400 Bad Request
The plain HTTP request was sent to HTTPS port
Der Container kommuniziert via http mit nginx, und der Anwender von seinem Browser aus via https mit nginx. Mit scheme=https funktioniert der Zugriff auf https://publicname.server.tld/nuclos tadellos. Der Webclient wird ja unter der Location /webclient ausgeliefert, und bei anderen Anwendungen (nicht Nuclos) musste ich die Base-URL hinterlegen, damit es funktioniert (z.B. Jira/Confluence). Ich muss sonst mal auf meinem lokalen Rechner ohne https und Reverse Proxy analysieren, welche URLs der Web-Client erzeugt und warum die von meiner nginx-Konfig nicht wie gewünscht umgesetzt werden.
Aktuell wird die Login-Seite des Webclient wunderbar ausgeliefert, aber der Login funktioniert nicht, d.h. ohne jede Fehlermeldung wird die Login-Seite erneut angezeigt. Weder für den User nuclos noch für andere User. Die Berechtigung für den Webclient habe ich hinterlegt.
Firebug meldet einen Javascript-Fehler (result=2153644038). Vielleicht doch etwas für die Spezialisten aus der Entwicklung?
"createHttpBackend/<@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:10455:7
sendReq@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:10335:1
$http/serverRequest@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:10047:16
processQueue@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:14569:28
scheduleProcessQueue/<@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:14585:27
$RootScopeProvider/this.$get</Scope.prototype.$eval@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:15848:16
$RootScopeProvider/this.$get</Scope.prototype.$digest@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:15659:15
$RootScopeProvider/this.$get</Scope.prototype.$apply@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:15953:13
ngEventHandler/<@https://public.server.tld/webclient/lib/angular/angular.9b1e560ad2fcf67e.js:23305:17
o.event.dispatch@https://public.server.tld/webclient/lib/jquery/jquery.min.ed9cc403240d6bb8.js:3:6003
o.event.add/r.handle@https://public.server.tld/webclient/lib/jquery/jquery.min.ed9cc403240d6bb8.js:3:2813
"Gruß
Matthias8 Januar 2016 um 13:58 Uhr #8723Matthias KÖPER
TeilnehmerNachtrag: Chrome ist genauer:
Mixed Content: The page at 'https://public.server.tld/webclient/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://public.server.tld/nuclos/rest/version'. This request has been blocked; the content must be served over HTTPS.
8 Januar 2016 um 17:59 Uhr #8724Frank Pavlic
TeilnehmerHi,
na also, das Problem ist klar.
Benutzer fordert per https die Seite an, nuclos liefert aber nur über http. Das führt dann zu der Fehlermeldung.
Konfiguriere nuclos auf https, dann müsste es gehen, scheme natürlich wieder auf https umstellen.Gruß
Frank -
AutorBeiträge