Home       Servicebereich  Projekte  Kontakt  

Konfiguration von Tomcat


Tomcat

Tomcat hat einen modularen, hierarchischen und komponentenbasierten Aufbau. Tomcat definiert Interfaces, die von den einzelnen Komponenten implementiert werde. Das bedeutet, dass einzelne Teile im Kern von Tomcat relativ einfach extern entwickelte Komponenten ersetzt werden können. Sie müssen nur die Interfaces der jeweiligen Komponente implementieren. Im Normalfall werden jedoch die von Tomcat mitgelieferten Implementierungen eingesetzt.

Die Komponenten finden sich als XML- Tags in der Haupt-Konfigurationsdatei, der Datei conf/server.xml von Tomcat wieder.

.../conf/server.xml

Ein Tomcat Server kann mit den Voreinstellungen dieser Datei betrieben werden. In der Regel wird der Administrator einige Einstellungen anpassen, um z.B. die Connectoren ausschließlich an das Loopback Interface zu binden.

In dieser Datei werden die Einstellungen für den eigentlichen Tomcat-Server vorgenommen. Die XML-Strukturen der Konfigurationsdatei bilden die Hierarchie der Tomcat Architektur direkt ab.

Die wichtigsten Konfigurationsdirektiven (XML-Tags, bzw. Attribute sind im folgenden Aufgeführt.

<Server>...</Server>

Der Server stellt die gesamte Servlet-Engine dar. Die Konfiguration erfolgt mit Hilfe von Attributen des Tags. In der mit dem Tomcat Paket ausgelieferten Datei werden hier die Attribute "port", "shutdown", und "debug" gesetzt.

    <Server port="8005" shutdown="SHUTDOWN" debug="0">
  

Diese Konfiguration stellt ein, dass die Servlet Engine einen Socket an (localhost) Port 8005 bindet. Wenn der Befehl "SHUTDOWN" auf diesen Socket geschrieben wird, wird der Server heruntergefahren.

Neben den hier aufgeführten Attributen gibt es noch "className", dass die Klasse festlegt, die dieses Interface implementiert. Soll eine eigene Klasse verwendet werden, wird className auf den Namen der Komponente gesetzt.

<Service>...</Service>

In einem Server können mehrere Services definiert werden. Ein Service kapselt ein oder mehrere Connectoren und eine Engine (s.u.).

    <Service name="Intranet-Web">
    ...
    </Service>
  

Diese Komponente ist nicht zwingend notwendig. Falls sie nicht konfiguriert ist, gibt es nur einen Service innerhalb des Servers. Auch diese Komponente kann durch eine andere Implementierung ersetzt werden. In dem Falle wird das Attribut "className" angegeben, dass den Namen der Klasse mit der Implementierung enthält.

<Connector>...</>

Innerhalb des Services können mehrere Connectoren definiert werden. Der hier aufgeführte AJP13 Connector bildet das Gegenstück zum mod_jk Modul des Webservers. Die Attribute verwenden sprechende Bezeichner, so das keine weiteren Erläuterungen notwendig sind.

    <Connector port="8009" address="localhost"
      maxThreads="20" minSpareThreads="5" maxSpareThreads="20"
      enableLookups="false" redirectPort="8443" debug="0"
      protocol="AJP/1.3" />
  

Bei einem Setup mit Apache und Tomcat auf dem gleichen System, sollte die Einstellung address="localhost" vorgenommen werden. Hiermit ist der Connector nur noch über das Loopback-Interface ansprechbar. Falls die Administration über das Webinterface nicht benötigt wird, kann der HTTP/1.1 Connector an Port 8080 auskommentiert werden.

<Engine>...</Engine>...

Die Engine ist für die Verarbeitung der Requests zuständig, die über die konfigurierten Connectoren hereingereicht werden.

    <Engine name="Catalina" defaultHost="localhost"
        debug=0>
    ...
    </Engine>
  

Die Engine Innerhalb einer Engine können mehrere Hosts definiert werden. Das Attribut "defaultHost" definiert den Host-Container, der Requests verarbeitet, die keinem Host zugeordnet werden können.

<Logger>...</>

Die Logger definieren das Logging der Engine. Pro Engine können mehrere Logger definiert werden. Der hier konfigurierte Logger dient als Default-Logger, der von den Hosts überschrieben werden kann.

    <Logger className="org.apache.catalina.logger.FileLogger"
        prefix="catalina_log." suffix=".txt"
        timestamp="true"/>
  

Tomcat liefert mehrere Logger-Implementierungen mit, die die Meldungen z.B. in Dateien oder auf STDERR schreiben oder an den Syslog-Dienst schicken. Es gibt daher keine Default-Einstellung, so dass die Klasse mit Hilfe des "className" Attributs direkt angegeben werden muss.

<Host>...</Host>

Der Host-Container bildet einen virtuellen Host ab. Jede Engine kann mehrere virtuelle Hosts beinhalten. Jeder Host wird mit Hilfe mehrerer Attribute konfiguriert.

    <Host name="localhost" debug="0" appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
  

Die Einstellungen von "autoDeploy" und "unpackWARs" bewirken, dass eine Web-Applikation beim Start von Tomcat automatisch geladen (deployed) wird. Web Application Resource (WAR) Pakete werden von Tomcat automatisch ausgepackt.

Das Attribut "appBase" zeigt auf das Basisverzeichnis der Web-Applikation für diesen Host. Jede Web-Applikation ist in einem Verzeichnis unterhalb von "appBase" installiert. Die Konfiguration der Web-Applikationen erfolgt mit Hilfe der Datei WEB-INF/web.xml unterhalb des jeweiligen Applikations-Verzeichnisses.

WAR-Dateien

Eine WAR Datei ist eine mit ZIP gepacktes Verzeichnis einer Web-Applikation gemäß der Servlet-Spezifikation. Dieses enthält mindestens die Klassendateien der Servlets und das Verzeichnis WEB-INF mit der web.xml.


< zurück  | weiter >