2017-09-12 6 views
0

Ist es überhaupt möglich zu tun, was ich versuche zu tun?Verwenden Sie Apache als Frontend für Glassfish

Ich habe eine Domain - Beispiel.com - auf einem Webserver Ubuntu 16.04/Apache installiert.

Hinter Apache Ich bin mit einem Standard-Glassfish (Payara tatsächlich) auf Standard-Port 8080

Auf Payara habe ich ein Webapp - MyWebApp - Einsatz auf Rootkontext/

, wenn ich meine broser Punkt direkt In den 8080-Port zeigt es meine Web-App, wie ich erwarten:

http://example.com:8080/ => webapp shown. 

1) zuerst möchte ich meine Payara hinter apache verstecken und sicher machen, wenn die Leute schreiben

http://example.com/ the are redirected to 

https://example.com => myWebapp is shown. 

Dieser Teil funktioniert mit AJP und meine Zertifikate sind alle vorhanden.

In meinem default.conf im

<VirtualHost *:80> 

haben die folgende Zeile eingefügt:

Redirect permanent/https://example.com 

es kümmert sich um die Umleitung zu HTTPS. Aber ich bin im Zweifel, ob dies der richtige Weg ist.

Alles andere in der Conf-Datei ist Standard.

in meiner ssl.conf Datei im

<virtualHost *.443> 

Ich habe

eingefügt
ServerName example.com 

und Pfade zu SSL-Zertifikaten. Es funktioniert wie erwartet.

weiter mehr ich habe

hinzugefügt
ProxyPass/ajp://127.0.0.1:8009 
ProxyPassReverse/ajp://127.0.0.1:8009 

Auch dies gut funktioniert. Wenn ich

http://example.com 

schreibe ich bin zu

umgeleitet
https://example.com/ => myWebapp is shown. 

Das ist perfekt.

aber wenn ich

http://example.com/phpmyadmin 

zum Beispiel schreibe ich bin nicht die phpmyadmin Seite gezeigt.

Wie kann ich das erreichen und ist es überhaupt möglich?

danke für jede Hilfe.

Kim

Antwort

0

Sie haben einen Konflikt in der folgenden Konfiguration:

ProxyPass/ajp://127.0.0.1:8009 
ProxyPassReverse/ajp://127.0.0.1:8009 

Diese alle HTTP-Anfragen sendet, auch http://example.com/phpmyadmin zu Ihrem Payara Server

Was müssen Sie stattdessen ist so etwas wie

ProxyPass /myWebapp ajp://127.0.0.1:8009 
ProxyPassReverse /myWebapp ajp://127.0.0.1:8009 

so dass nur relative URLs die mit/myWebapp starten, werden auf Ihren Payara-Server umgeleitet und/phpmyadmin wird immer noch von Apache gehostet.

Die Apache documentation erwähnt:

nur bestimmt URIs proxied werden kann, wie in diesem Beispiel gezeigt:

ProxyPass "/images" "http://www.example.com/" 
ProxyPassReverse "/images" "http://www.example.com/" 

Im obigen alle Anforderungen, die mit den/Bildern beginnen Pfad mit Proxy zum angegebenen Backend, andernfalls wird es lokal behandelt.

+0

Ok, also muss der Benutzer http://example.com/myWebApp schreiben, um meine Anwendung zu treffen? –

+0

In dieser Lösung ja – toongeorges

+0

Sie könnten 'RedirectMatch ^/$ http: // www.example.com/myWebApp' zu der Apache-Konfiguration hinzufügen, um' http: // www.example.com' nach 'http: // www umzuleiten .example.com/myWebApp'. – toongeorges

Verwandte Themen