VirtualHosts bei Tomcat einrichten

veröffentlicht am 21. März 2013

Sofern mehrere Anwendungen im Tomcat ausgeführt werden und die einzelnen Anwendungen über eigene Domains erreichbar sein sollen, müssen VirtualHosts im Tomcat eingerichtet werden. Diese Anleitung zeigt zwei Möglichkeiten zum Einrichten von VirtualHosts beim Tomcat.

Die erste Variante besteht darin, die jeweilige Anwendungen als Hauptanwendung des entsprechenden VirtualHosts zu deployen. Dabei wird die Anwendung als ROOT.war im Ordner des VirtualHosts abgelegt. Bei der zweiten Variante können die war Dateien einfach im webapps Ordner des Tomcat deployed und danach konfigurativ auf einen bestimmten VirtualHost gemapped werden.

Variante 1

Zunächst muss die Datei server.xml im conf Verzeichnis des Tomcat geöffnet werden. Dort ist bereits der Standard VirtualHost für localhost eingerichtet. Nach dem schließenden </Host> können eigene VirtualHosts angelegt werden. Der Eintag für einen neuen VirtualHost könnte wie folgt aussehen:

<Host name="anwendung.meinedomain.de" appBase="vhosts/anwendung" />

Das Attribute name legt den gewünschten Namen der Domain für den VirtualHost fest. appBase hingegen definiert das Verzeichnis, in dem die Anwendungen für den VirtualHost abgelegt werden. Bei dieser Variante können in dem Order des VirtualHosts verschiedene Anwendungen deployed werden, die dann über anhängen des entsprechenden Context Pfades erreichbar sind. Lediglich die Hauptanwendung (ROOT) wird direkt beim Aufruf der angegebenen Domain ausgeliefert.

Nachdem der VirtualHost konfiguriert wurde, muss direkt im Tomcat Verzeichnis der Ordner vhosts, gefolgt vom Ordner anwendung angelegt werden. Die war Datei wird nun in ROOT.war umbenannt und im zuletzt angelegten Verzeichnis abgelegt. Nach einem Neustart des Tomcat ist die Anwendung über die konfigurierte Domain erreichbar.

Variante 2

Bei der zweiten Variante wird die war Datei der gewünschten Anwendung zunächst ohne Umbenennung im Ordner webapps deployed. Der Name des beim Deployment erzeugten Ordners muss nun notiert werden. Für dieses Beispiel wird der Name anwendung verwendet. Auch bei dieser Variante muss ein neuer VirtualHost in der Datei server.xml definiert werden. Dieser sieht nun wie folgt aus:

<Host name="anwendung.meinedomain.de" appBase="webapps">
	<Context path="/" docBase="anwendung" />
</Host>

Für den Host Eintrag gilt dasselbe wie bei Variante 1. Neu ist jedoch der Context Eintrag. Das Attribut path definiert die relative URL für das Mapping des entsprechenden Contexts. docBase gibt an, wo die Resourcen für den jeweiligen Context abgelegt sind. Bei dieser Variante muss für jede weitere Anwendung, die über dieselbe Domain laufen soll, ein eigener Context Eintrag hinzugefügt werden. Außerdem sind die deployten Anwendungen auch durch anhängen des Context Pfades über die Hauptdomain erreichbar.

Fazit

Welche Variante man letztendlich verwendet, muss jeder selber entscheiden. Ich persönlich bevorzuge die erste Variante, da eine Trennung der Anwendungen pro VirtualHosts besser möglich ist, auch wenn ich nur eine Anwendung pro VirtualHost deploye.

Hinterlasse einen Kommentar