Apache und Tomcat nebeneinander betreiben
Wie ich in einem meiner früheren Artikel beschrieben habe kann man den Tomcat Webserver der ja auf dem Apache Webserver so konfigurieren, dass er auch PHP Projekte hosten kann. Da man das nicht immer möchte stellt sich die Frage: Kann man den Apache parallel mit dem Tomcat Server betreiben? Einfache Antwort JA!
Apache und Tomcat nebeneinander betreiben
Standardmäßig nimmt der Apache alle Anfragen entgegen (Port 80), außer man gibt in der URL explizit den Port (8080 für Tomcat) ein. Da ich dies in meinem früheren Artikel umgestellt habe werden bei mir jetzt standardmäßig alle Anfragen an den Tomcat weitergeleitet. Dafür habe ich in der Apache Konfiguration folgendes eingegeben:
ProxyPass / http://localhost:8080/
Motivation
Der Grund warum ich eine PHP Applikation mit Apache ausführen will ist schnell erklärt. Diese Applikation ist eine Facebook App und muss sowohl über http:// als auch über https:// ausgeführt werden können. Die Portweiterleitung konnte ich so nicht erstellen. Außerdem ist es um ein vielfaches einfacher https:// für Apache zu konfigurieren als für den Tomcat.
Vorgehensweise
Will man nun explizit Programme mit dem Apache laufen lassen, so muss man diese explizit angeben. Das würde für meine Testapplikation so aussehen:
ProxyPass /Testapplikation ! ProxyPass / http://localhost:8080/
Gibt man nun also im Browser www.meinedomain.com/Testapplikation ein, so wird die Anfrage nicht an den Tomcat weitergeleitet, sondern direkt vom Apache Webserver übernommen. Bei mir liegt die Testapplikation im Standardverzeichnis /var/www.
Fazit
Will man Apache und Tomcat parallel betreiben gibt es 2 Möglichkeiten:
- man installiert zum Apache Tomcat und lässt die Standardeinstellungen. D.h. wenn ich nun im Browser www.meinedomain.com eingebe wird die Anfrage an den Apache gestellt. Eine Tomcat Applikation kann nur über den Port angesprochen werden z.B.: www.meinedomain.com:8080/Tomcatapplikation
- will man keine Weiterleitung mit dem Port, so kann man Tomcat mit Mod_Proxy konfigurieren. Damit nimmt standardmäßig Tomcat alle Anfragen an. Wie oben beschrieben kann man nun alle Apache Applikationen von dieser Weiterleitungsregel herausnehmen. So sieht der Anwender gar nicht, dass tatsächlich 2 Webserver parallel arbeiten, da er keine Ports eingeben muss!
Ich hoffe der Artikel ist nützlich und man kann meinen Angaben folgen.