Apache vorne, Tomcat hinten, aber SSL funktioniert nicht?

Apache vorne, Tomcat hinten, aber SSL funktioniert nicht?

Ich habe Apache als meinen Webserver eingerichtet und Tomcat ist über an Apache angeschlossen mod_jk, sodass der Benutzer nie mit Tomcat interagiert.

Ich habe SSL auf Apache eingerichtet und kann es mit erreichen https://localhost, aber wenn ich versuche, unter auf meine Anwendung zuzugreifen https://localhost/app, erhalte ich eine directory not foundFehlermeldung.

Der Haken besteht darin, dass ich es problemlos erreichen kann, wenn ich normales http verwende:http://localhost/app

Was muss ich bearbeiten, damit diese Verbindung funktioniert?

  • Ich habe den AJP-Anschluss auskommentiert inserver.xml
  • Ich habe meinen virtuellen Host hinzugefügt zuhttpd.conf

Was vermisse ich?

Antwort1

http und https werden von Apache als unterschiedliche virtuelle Server betrachtet. Haben Sie Ihren Reverse-Proxy unter beiden virtuellen Hosts eingerichtet?

Antwort2

Sie müssen Ihr Setup von http auf https replizieren. Wenn Sie einen http-Connector haben, benötigen Sie den AJP-Connector nicht.

schauen Sie, wie es eingerichtet ist – wahrscheinlich führt es einen Proxy-Pass durch oder verwendet eine RewriteRule mit dem P am Ende, das ein Proxy ist.

Antwort3

Ihre Definition für Arbeiter könnte falsch sein. Überprüfen Sie workers.properties auf den Typ der Arbeit. Wenn ajp13, setzen Sie Ihren ajp-Abschnitt in Tomcat wieder zurück, wie er war. mod_jk verwendet normalerweise ajp13 als Typ.

Antwort4

Wenn Sie mod_jk verwenden, benötigen Sie den AJP-Connector in Tomcat.

Wenn der Worker ein Konfigurationsproblem hat, antwortet Apache in den meisten Fällen mit einem 500-Fehler (Serverfehler). Wenn Sie eine 404 erhalten, liegt das eher daran, dass die Anfrage nicht an den Tomcat-Server weitergeleitet wird (oder die URL aus Tomcat-Sicht ungültig ist). Überprüfen Sie, ob der JkMount in Ihrer Apache-Konfiguration vorhanden und korrekt ist (für den Port 443).

Um Probleme mit mod_jk zu debuggen, aktivieren Sie die Debug-Protokolle in mod_jk und sehen Sie sich die Apache-Protokolle an. Fügen Sie diese Zeilen in die mod_jk-Konfiguration ein (im Allgemeinen in jk.conf):

JkLogFile /var/log/apache2/mod_jk.log

JkLogLevel-Debug

Sie sollten beim Start einige Protokolle und einige interessante Details zu jeder Anfrage sehen.

Ich habe dieses Setup für Apache2 + SSL + JBoss durchgeführt. Weitere Details und Optimierungstipps finden Sie in Bereitstellen einer J2EE-Anwendung hinter einem Apache-Server in einer Produktionsumgebung

verwandte Informationen