Tomcat – server.xml

In der server.xml werden die Startparameter definiert. Der HTTP-Connector, AJP-Connector und die Hosteinstellungen. Auch die Port-Einstellungen sind hier festgehalten. Der Tomcat hat 4 wichtige Ports. Den Anfang macht dabei immer der Shutdown-Port im Server-Tag der Konfiguration. Der Standard für diesen ist „8005“. Betreibt man mehrere Tomcats muss ab dem 2. Tomcat hier etwas Anderes eingetragen werden. Auf einen Port kann immer nur ein Prozess laufen. Der nächste Port steht im ersten der beiden Standard Connectoren. Dies ist per Default der HTTP-Connector und läuft auf Port „8080“ und hat einen SSL-Redirect auf „8443“. Der zweite Connector ist als AJP-Connector konfiguriert und läuft standardmäßig auf Port „8009“.

Über die Connectoren kann Verbindung zum Tomcat aufbauen. Über den HTTP-Connector kann man, wie der Name schon sagt HTTP-Verbindungen aufbauen. Also der Port über den alle Webseiten ausgeliefert werden. Bei Tomcat ist dies defaultmäßig immer „8080„. Im Gegensatz zu Port „80„, welcher z.B. bei Apache2 genommen wird. Dies ist so, da Tomcat selten direkt als Webserver auftritt. Meist sind ihm immer noch Webserver vorgeschalten. Zum Beispiel Nginx per Reverse Proxy oder Apache2. Dieser verbindet sich meist über mod_jk. Damit kämen wir dann zum AJP-Connector. Dieser wird also zur kommunikation zwischen dem Apache2 Modul mod_jk und Tomcat benutzt. Das Protokoll ist ein binäres, es wird also kein HTTP gesprochen. Von jedem Connector kann es immer mehrere geben, jeweils natürlich mit unterschiedlichen Ports.

Die „server.xml“ ist im XML Stil ausgebaut. Alles wird mit Tags definiert. Alles umschließt das „<server>“-Tag. Innerhalb davon sind dann immer einige Listener und Resourcen definiert. Im weiteren Verlauf kommt dann das „<service>“-Tag. Darin enthalten sind die Connectoren für HTTP und AJP. Weiterhin noch das „<engine>“-Tag. Damit kann man den Standardhost für den Tomcat angeben, welcher genommen werden soll, wenn kein anderer passt. Darin enthalten ist dann einmal das Realm-Tag und dann noch das besagte „<host>“-Tag. Dieses entspricht grob den Vhosts beim Apache2-Webserver. Damit kann man Hostnames auf Applikationen mappen. Die „appBase“ (DocumentRoot) festlegen und weitere Feature zur Behandlung von Sourcecode. Innerhalb hiervon kann man wiederum „<context>“-Tags festlegen, welche dann die Applikationen noch genauer beschreiben und auch Domain-Pfade kennen. Und letztendlich kann man jetzt wieder „<resource>“-Tags anlegen, um der Applikation z.B. feste Datenbankverbindungen mitzugeben.

Applikationen kann man hier definieren, muss man aber nicht. Eine wesentlich dynamischere Variante wäre hier, die „context.xml“ zu benutzten. Denn bei Änderungen an der server.xml muss danach der Tomcat neu gestartet werden. Benutzt man die „context.xml“ braucht es zum einspielen keinen Neustart.