Die Migration eines alten JSP-Projektes auf einen neuen Server hat mich kürzlich dazu gebracht, etwas Zeit in Apache Tomcat zu stecken und die Konfiguration zu dokumentieren. Ausgangspunkt war eine JSP Applikation (WebApp), die über einen bestehenden Apache HTTPd Webserver ausgeliefert werden sollte.
Die folgende Beschreibung bezieht sich auf einen Windows Server, sollte sich unter Linux aber ebenso implementieren lassen.
Vorbereitung
- Applikationsverzeichnis D:\Websites\www.domain.at\webapps anlegen.
- Logverzeichnis D:\Websites\www.domain.at\logs anlegen.
- Tomcat Konfigurationsverzeichnis %CATALINA_HOME%\conf\Catalina\www.domain.at anlegen.
- Die IP-Adresse des gewünschten Hostnamen “www.domain.at” MUSS auf die IP des Tomcat-Servers auflösen!
Tomcat Virtual Host anlegen
Der gewünschte VirtualHost muss in der Server.xml im CATALINA_HOME-Verzeichnis eingetragen werden:
<Host name="www.domain.at" appBase="D:/Websites/www.domain.at/webapps" unpackWARs="false" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="D:/Websites/www.domain.at/logs" prefix="tomcat_log."
suffix=".txt" pattern="%h %l %u %t %r %s %b" />
</Host>
Danach den Tomcat-Dienst neu starten.
WebApp einrichten
- Fertige Applikation im Verzeichnis ROOT unterhalb des Applikationsverzeichnisses ablegen.
- Applikation muss im Unterverzeichnis “WEB-INF” eine gültige “web.xml” Konfigurationsdatei enthalten.
Beispiel WebApplikation
webapps
+---test
+---calendar
¦ +---img
+---images
+---WEB-INF
+---classes
+---com
¦ +---[...]
+---dbtools
+---test
Integration in Apache Httpd
In der worker.properties einen neuen Worker für den Virtual Host anlegen:
worker.list=workerDOMAIN
worker.workerDOMAIN.type=ajp13
worker.workerDOMAIN.host=www.domain.at
worker.workerDOMAIN.port=8009
In der
JkMount /* workerDOMAIN
Achtung: “JkMount /test/* workerDOMAIN” mappt den Aufruf www.domain.at/test/ in das Verzeichnis www.domain.at:8009/test/ am Tomcat!