<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.xinux.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.254.27</id>
	<title>Xinux Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.xinux.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.254.27"/>
	<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php/Spezial:Beitr%C3%A4ge/192.168.254.27"/>
	<updated>2026-06-11T14:37:01Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=763</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=763"/>
		<updated>2009-08-05T14:05:00Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Apache und Tomcat verbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; keystoreType=&amp;quot;JKS&amp;quot;&lt;br /&gt;
               truststoreType=&amp;quot;JKS&amp;quot; algorithm=&amp;quot;SunX509&amp;quot;&lt;br /&gt;
               keystoreFile=&amp;quot;/etc/tomcate5.5/.keystore&amp;quot;&lt;br /&gt;
               keystorePass=&amp;quot;geheim&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 JkWorkersFile   /etc/libapache2-mod-jk/workers.properties&lt;br /&gt;
 JkLogFile       /var/log/apache2/mod_jk.log&lt;br /&gt;
 JkLogLevel      info&lt;br /&gt;
 &lt;br /&gt;
 JkMount /*.jsp ajp13_worker&lt;br /&gt;
 JkMount /*/servlet/ ajp13_worker&lt;br /&gt;
 JkMount /manager ajp13_worker&lt;br /&gt;
 JkMount /manager/* ajp13_worker&lt;br /&gt;
 JkMount /jsp-examples ajp13_worker&lt;br /&gt;
 JkMount /jsp-examples/* ajp13_worker&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties wird automatisch unter /etc/libapache2-mod-jk/ angelegt.&lt;br /&gt;
&lt;br /&gt;
In der Datei workers.properties darauf achten, dass folgende Zeilen korrekt sind (Tomcat Homeverzeichnis und Java Homeverzeichnis):&lt;br /&gt;
 ...&lt;br /&gt;
 workers.tomcat_home=/var/lib/tomcat5.5&lt;br /&gt;
 workers.java_home=/usr/lib/jvm/java-6-sun&lt;br /&gt;
&lt;br /&gt;
Danach müssen apache Webserver und Tomcat neu gestartet werden (zuerst Tomcat, dann apache neu starten).&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=761</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=761"/>
		<updated>2009-08-05T13:21:05Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Apache und Tomcat verbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; keystoreType=&amp;quot;JKS&amp;quot;&lt;br /&gt;
               truststoreType=&amp;quot;JKS&amp;quot; algorithm=&amp;quot;SunX509&amp;quot;&lt;br /&gt;
               keystoreFile=&amp;quot;/etc/tomcate5.5/.keystore&amp;quot;&lt;br /&gt;
               keystorePass=&amp;quot;geheim&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 JkWorkersFile   /etc/libapache2-mod-jk/workers.properties&lt;br /&gt;
 JkLogFile       /var/log/apache2/mod_jk.log&lt;br /&gt;
 JkLogLevel      info&lt;br /&gt;
 &lt;br /&gt;
 JkMount /*.jsp ajp13_worker&lt;br /&gt;
 JkMount /*/servlet/ ajp13_worker&lt;br /&gt;
 JkMount /manager ajp13_worker&lt;br /&gt;
 JkMount /manager/* ajp13_worker&lt;br /&gt;
 JkMount /jsp-examples ajp13_worker&lt;br /&gt;
 JkMount /jsp-examples/* ajp13_worker&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties wird automatisch unter /etc/libapache2-mod-jk/ angelegt.&lt;br /&gt;
&lt;br /&gt;
In der Datei workers.properties darauf achten, dass folgende Zeilen korrekt sind (Tomcat Homeverzeichnis und Java Homeverzeichnis):&lt;br /&gt;
 ...&lt;br /&gt;
 workers.tomcat_home=/usr/share/tomcat5.5&lt;br /&gt;
 workers.java_home=/usr/lib/jvm/java-6-sun&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=760</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=760"/>
		<updated>2009-08-05T12:59:15Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Apache und Tomcat verbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; keystoreType=&amp;quot;JKS&amp;quot;&lt;br /&gt;
               truststoreType=&amp;quot;JKS&amp;quot; algorithm=&amp;quot;SunX509&amp;quot;&lt;br /&gt;
               keystoreFile=&amp;quot;/etc/tomcate5.5/.keystore&amp;quot;&lt;br /&gt;
               keystorePass=&amp;quot;geheim&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 JkWorkersFile   /etc/libapache2-mod-jk/workers.properties&lt;br /&gt;
 JkLogFile       /var/log/apache2/mod_jk.log&lt;br /&gt;
 JkLogLevel      info&lt;br /&gt;
 &lt;br /&gt;
 JkMount /*.jsp ajp13_worker&lt;br /&gt;
 JkMount /*/servlet/ ajp13_worker&lt;br /&gt;
 JkMount /manager ajp13_worker&lt;br /&gt;
 JkMount /manager/* ajp13_worker&lt;br /&gt;
 JkMount /jsp-examples ajp13_worker&lt;br /&gt;
 JkMount /jsp-examples/* ajp13_worker&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties wird automatisch unter /etc/libapache2-mod-jk/ angelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=757</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=757"/>
		<updated>2009-08-05T12:15:17Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Apache und Tomcat verbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; keystoreType=&amp;quot;JKS&amp;quot;&lt;br /&gt;
               truststoreType=&amp;quot;JKS&amp;quot; algorithm=&amp;quot;SunX509&amp;quot;&lt;br /&gt;
               keystoreFile=&amp;quot;/etc/tomcate5.5/.keystore&amp;quot;&lt;br /&gt;
               keystorePass=&amp;quot;geheim&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=756</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=756"/>
		<updated>2009-08-05T12:14:07Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Apache und Tomcat verbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; keystoreType=&amp;quot;JKS&amp;quot;&lt;br /&gt;
               truststoreType=&amp;quot;JKS&amp;quot; algorithm=&amp;quot;SunX509&amp;quot;&lt;br /&gt;
               keystoreFile=&amp;quot;/etc/tomcate5.5/.keystore&amp;quot;&lt;br /&gt;
               keystorePass=&amp;quot;geheim&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Logdatei für mod_jk anlegen:&lt;br /&gt;
 touch /var/log/apache2/mod_jk.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=755</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=755"/>
		<updated>2009-08-05T12:07:04Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; keystoreType=&amp;quot;JKS&amp;quot;&lt;br /&gt;
               truststoreType=&amp;quot;JKS&amp;quot; algorithm=&amp;quot;SunX509&amp;quot;&lt;br /&gt;
               keystoreFile=&amp;quot;/etc/tomcate5.5/.keystore&amp;quot;&lt;br /&gt;
               keystorePass=&amp;quot;geheim&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=754</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=754"/>
		<updated>2009-08-05T12:01:33Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; keystoreType=&amp;quot;JKS&amp;quot;&lt;br /&gt;
               truststoreType=&amp;quot;JKS&amp;quot; algorithm=&amp;quot;SunX509&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=753</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=753"/>
		<updated>2009-08-05T12:00:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; keystoreType=&amp;quot;JKS&amp;quot;&lt;br /&gt;
               truststoreType=&amp;quot;JKS&amp;quot; algorithm=&amp;quot;SunX509&amp;quot; clientAuth=&amp;quot;false&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=752</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=752"/>
		<updated>2009-08-05T11:49:43Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um die Einträge keystoreFile=&amp;quot;/pfad/zur/keystoredatei/dateiname&amp;quot; keystorePass=&amp;quot;&amp;lt;gewähltes Passwort&amp;gt;&amp;quot; ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=751</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=751"/>
		<updated>2009-08-05T11:47:48Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis :&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=750</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=750"/>
		<updated>2009-08-05T11:46:10Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-6-sun/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=749</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=749"/>
		<updated>2009-08-05T11:33:00Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=748</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=748"/>
		<updated>2009-08-05T11:32:30Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Realms, Roles und User */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=747</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=747"/>
		<updated>2009-08-05T11:32:16Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Konfigurationsdateien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=746</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=746"/>
		<updated>2009-08-05T11:31:57Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* web.xml */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=745</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=745"/>
		<updated>2009-08-05T11:31:46Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* server.xml */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=744</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=744"/>
		<updated>2009-08-05T11:31:18Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Komponenten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=743</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=743"/>
		<updated>2009-08-05T11:29:19Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Verwalten der Anwendungen - Manager Anwendung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=742</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=742"/>
		<updated>2009-08-05T11:28:00Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Verwalten der Anwendungen - Manager Anwendung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps (/usr/share/tomcat5.5/webapps/)&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.Sie finden die vollständige Befehlsliste unter&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=741</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=741"/>
		<updated>2009-08-05T11:22:14Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Verwalten der Anwendungen - Manager Anwendung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
'''Deployen eines bestehenden Web Archives'''&amp;lt;br&amp;gt;&lt;br /&gt;
Als erstes wollen wir ein bestehendes Web Archiv installieren. Das WAR-File enthält alle nötigen Dateien wie Servlets, sonstige Java-Klassen, JSP und HTML-Seiten, JAR-Archive. Dies geschieht in zwei Schritten (ein Beispiel für ein WAR-Archiv kann man unter der folgenden URL finden: http://www.hccfl.edu/pollock/AJava/WAR/myServletWAR.war):&lt;br /&gt;
#Kopieren Sie das WAR Archiv ins Verzeichnis $CATALINA_HOME/webapps&lt;br /&gt;
#Starten Sie Tomcat neu:&amp;lt;br&amp;gt;&lt;br /&gt;
Tomcat entpackt das Web Archiv Anschliessend können Sie die Datei *.war löschen, da die darin enthaltenen Dateien sich nun in den Subverzeichnissen befinden.&lt;br /&gt;
&lt;br /&gt;
Testen mit der URL „http://localhost:8180/&amp;lt;Name des WAR-Archivs ohne Suffix&amp;gt;“    &lt;br /&gt;
            &lt;br /&gt;
'''Deployen von nicht archivierten Dateien'''&amp;lt;br&amp;gt;&lt;br /&gt;
Falls Sie kein Web Archiv haben, können Sie die Dateien auch direkt ins WebApps Verzeichnis kopieren.Diese Methode ist sehr einfach und Tomcat generiert aufgrund Ihrer Verzeichnisstruktur beim Neustart den passenden Kontexteintrag in server.xml.&lt;br /&gt;
&lt;br /&gt;
'''Deployen mithilfe der Tomcat Administration'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sie können auch Applikationen mithilfe der Tomcat Manager Befehle deployen oder auflisten oder entfernen.Sie finden die vollständige Befehlsliste unter&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=740</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=740"/>
		<updated>2009-08-05T11:16:52Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Optionen zur Server-Konfiguration:&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Name&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|EnableDNSLookups&lt;br /&gt;
|Durchführen von Nameserverabfragen&lt;br /&gt;
|-&lt;br /&gt;
|URI Encoding&lt;br /&gt;
|Encoding, das für den URI String benutzt wird. ISO-8859-1, wenn nicht angegeben.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address&lt;br /&gt;
|Für Server mit mehr als einer IP Adresse.&lt;br /&gt;
|-&lt;br /&gt;
|Secure&lt;br /&gt;
|SSL Support einschalten.&lt;br /&gt;
|-&lt;br /&gt;
|Accept Count&lt;br /&gt;
|Max. Warteschlangenlänge für Anfragen, wenn alle Prozess Threads ausgelastet sind.&lt;br /&gt;
|-&lt;br /&gt;
|Compression&lt;br /&gt;
|Schaltet Kompression ein / aus.&lt;br /&gt;
|-&lt;br /&gt;
|Connection Timeout&lt;br /&gt;
|Timeout&lt;br /&gt;
|-&lt;br /&gt;
|Max KeepAlive Requests&lt;br /&gt;
|Maximale Anfragen während einer Verbindung; 1 -&amp;gt; Ausschalten von KeepAlive, -1 -&amp;gt; unlimitierte Anzahl an Anfragen&lt;br /&gt;
|-&lt;br /&gt;
|Max Spare Threads&lt;br /&gt;
|Maximale Anzahl unbenutzter Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Max Threads&lt;br /&gt;
|Maximale Anzahl der Prozesse.&lt;br /&gt;
|-&lt;br /&gt;
|Min Spare Threads&lt;br /&gt;
|Anzahl Prozesse, die beim Starten gestartet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Port Number&lt;br /&gt;
|Port, auf dem der Server erreichbar ist.&lt;br /&gt;
|-&lt;br /&gt;
|Redirect Port Number&lt;br /&gt;
|Bei SSL Anfragen wird an diesen Port weitergeleitet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Verwalten der Anwendungen - Manager Anwendung=&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=731</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=731"/>
		<updated>2009-08-05T09:05:51Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcat Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Unterhalb von Host kann man die einzelnen Webanwendungen konfigurieren.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=730</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=730"/>
		<updated>2009-08-05T09:04:12Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Tomcate Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcat Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=729</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=729"/>
		<updated>2009-08-05T09:04:04Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Konfiguration des Tomcat Servers (Admin-Anwendung) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung sieht amn 3 Hauptbereiche:&lt;br /&gt;
&lt;br /&gt;
'''Tomcat Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier erfolgt die Konfiguration des eigentlichen Servers und der auf dem Server vorhandenen Webanwendungen.&lt;br /&gt;
&lt;br /&gt;
'''Resources'''&amp;lt;br&amp;gt;&lt;br /&gt;
Definition von Resourcen, die den Webanwendungen zur Verfügung stehen. Dies können zum Beispiel Datenbankanbindungen, Maildienste, etc. sein.&lt;br /&gt;
&lt;br /&gt;
'''User Definition'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können Benutzer, Gruppen und Rollen verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Tomcate Server==&lt;br /&gt;
&lt;br /&gt;
*Service&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist. &lt;br /&gt;
**Connector&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden. &lt;br /&gt;
**Host&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=726</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=726"/>
		<updated>2009-08-05T08:47:31Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Konfiguration des Tomcat Servers (Admin-Anwendung) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, die Konfiguration soweit möglich über die graphische Oberfläche vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Anmelden an der Admin Anwendung&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=725</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=725"/>
		<updated>2009-08-05T08:43:01Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration des Tomcat Servers (Admin-Anwendung)=&lt;br /&gt;
Hauptkonfigurationsdatei:&lt;br /&gt;
 /etc/tomcate5.5/server.xml&lt;br /&gt;
Die Konfigurationsdateien der einzelnen Anwendungen auf dem System befinden sich als .xml Dateien im jeweiligen DocumentRoot.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=723</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=723"/>
		<updated>2009-08-05T08:28:50Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=722</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=722"/>
		<updated>2009-08-05T08:27:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Installation und Dateien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
In der Datei /etc/default/tomcat5.5 eventuelle folgende Zeilen anpassen:&lt;br /&gt;
 JAVA_HOME=/usr/lib/jvm/&amp;lt;zu_benutzende_java_version&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcat5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcat5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=719</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=719"/>
		<updated>2009-08-04T16:12:51Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcate5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcate5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen:&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach muss tomcat neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=718</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=718"/>
		<updated>2009-08-04T16:11:34Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcate5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcate5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
Bevor man beide Anwendungen benutzen kann, muss man einen Benutzer mit den entsprechenden Rechten erstellen.&lt;br /&gt;
 cat /etc/tomcat5.5/tomcat-users.xml&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;admin&amp;quot; password=&amp;quot;geheim&amp;quot; roles=&amp;quot;admin&amp;quot;, manager/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=717</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=717"/>
		<updated>2009-08-04T16:07:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Komponenten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcate5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcate5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=716</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=716"/>
		<updated>2009-08-04T16:07:14Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcate5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcate5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=715</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=715"/>
		<updated>2009-08-04T16:06:54Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Komponenten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcate5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcate5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=714</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=714"/>
		<updated>2009-08-04T16:03:32Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Installation und Dateien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien: /etc/tomcate5.5/&lt;br /&gt;
*Logdateien: /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien: /usr/share/tomcate5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung: /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen: /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=713</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=713"/>
		<updated>2009-08-04T16:03:11Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Installation und Dateien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien /etc/tomcate5.5/&lt;br /&gt;
*Logdateien /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien /usr/share/tomcate5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=712</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=712"/>
		<updated>2009-08-04T16:02:35Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Verzeichnisstruktur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
*Konfigurationsdateien&lt;br /&gt;
 /etc/tomcate5.5/&lt;br /&gt;
*Logdateien&lt;br /&gt;
 /var/log/tomcat5.5/&lt;br /&gt;
*Programmdateien&lt;br /&gt;
 /usr/share/tomcate5.5/bin/ &lt;br /&gt;
*Admin und Manager Anwendung&lt;br /&gt;
 /var/lib/tomcat5.5/webapps/server/webapps&lt;br /&gt;
*Beispielanwendungen&lt;br /&gt;
 /usr/share/tomcat5.5-webapps/&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=711</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=711"/>
		<updated>2009-08-04T15:55:56Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation und Dateien=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
=Verzeichnisstruktur=&lt;br /&gt;
/usr/share/tomcat5.5/bin  - startup, shutdown und andere Skripte und ausführbare Dateien&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/common - Allgemeine Klassen, die von Catalina und anderen Webapplikationen benutzt werden können&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/conf – Server-Konfigurationsdateien&amp;lt;br&amp;gt;&lt;br /&gt;
- server.xml -- Zentrale Einstellungsdatei&amp;lt;br&amp;gt;&lt;br /&gt;
- tomcat-users.xml -- Datei für die Nutzer und deren Rollen und Berechtigungen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/logs - Catalina- und Anwendungs-Logs&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/server - Klassen, die nur von Catalina verwendet werden; Tomcat Bibliotheken&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/shared - Klassen, die von allen Webapplikationen verwendet werden&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/webapps - Verzeichnis der Webapplikationen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/work - temporäre Aufbewahrung von Dateien und Verzeichnissen&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=710</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=710"/>
		<updated>2009-08-04T15:55:42Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Verzeichnisstruktur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
=Verzeichnisstruktur=&lt;br /&gt;
/usr/share/tomcat5.5/bin  - startup, shutdown und andere Skripte und ausführbare Dateien&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/common - Allgemeine Klassen, die von Catalina und anderen Webapplikationen benutzt werden können&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/conf – Server-Konfigurationsdateien&amp;lt;br&amp;gt;&lt;br /&gt;
- server.xml -- Zentrale Einstellungsdatei&amp;lt;br&amp;gt;&lt;br /&gt;
- tomcat-users.xml -- Datei für die Nutzer und deren Rollen und Berechtigungen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/logs - Catalina- und Anwendungs-Logs&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/server - Klassen, die nur von Catalina verwendet werden; Tomcat Bibliotheken&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/shared - Klassen, die von allen Webapplikationen verwendet werden&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/webapps - Verzeichnis der Webapplikationen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/work - temporäre Aufbewahrung von Dateien und Verzeichnissen&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=709</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=709"/>
		<updated>2009-08-04T15:54:33Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
=Verzeichnisstruktur=&lt;br /&gt;
/usr/share/tomcat5.5/bin  - startup, shutdown und andere Skripte und ausführbare Dateien&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/common - Allgemeine Klassen, die von Catalina und anderen Webapplikationen benutzt werden können&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/conf – Server-Konfigurationsdateien&lt;br /&gt;
            - server.xml -- Zentrale Einstellungsdatei &lt;br /&gt;
            - tomcat-users.xml -- Datei für die Nutzer und deren Rollen und Berechtigungen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/logs - Catalina- und Anwendungs-Logs&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/server - Klassen, die nur von Catalina verwendet werden; Tomcat Bibliotheken&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/shared - Klassen, die von allen Webapplikationen verwendet werden&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/webapps - Verzeichnis der Webapplikationen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/work - temporäre Aufbewahrung von Dateien und Verzeichnissen&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=708</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=708"/>
		<updated>2009-08-04T15:24:46Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
 /ect/default/tomcat5.5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 update-alternatives --config java&lt;br /&gt;
 update-alternatives --config javac&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /etc/bash.bash.rc um folgende Zeile erweitern:&lt;br /&gt;
 export JAVA_HOME=/usr/lib/jvm/java-6-sun/&lt;br /&gt;
danach neu anmelden.&lt;br /&gt;
&lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
=Verzeichnisstruktur=&lt;br /&gt;
/usr/share/tomcat5.5/bin  - startup, shutdown und andere Skripte und ausführbare Dateien&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/common - Allgemeine Klassen, die von Catalina und anderen Webapplikationen benutzt werden können&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/conf – Server-Konfigurationsdateien&lt;br /&gt;
            - server.xml -- Zentrale Einstellungsdatei &lt;br /&gt;
            - tomcat-users.xml -- Datei für die Nutzer und deren Rollen und Berechtigungen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/logs - Catalina- und Anwendungs-Logs&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/server - Klassen, die nur von Catalina verwendet werden; Tomcat Bibliotheken&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/shared - Klassen, die von allen Webapplikationen verwendet werden&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/webapps - Verzeichnis der Webapplikationen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/work - temporäre Aufbewahrung von Dateien und Verzeichnissen&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=707</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=707"/>
		<updated>2009-08-04T14:50:22Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
&lt;br /&gt;
 update-alternatives --config java&lt;br /&gt;
 update-alternatives --config javac&lt;br /&gt;
&lt;br /&gt;
 /etc/bash.bash.rc um folgende Zeile erweitern:&lt;br /&gt;
 export JAVA_HOME=/usr/lib/jvm/java-6-sun/&lt;br /&gt;
&lt;br /&gt;
Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
=Verzeichnisstruktur=&lt;br /&gt;
/usr/share/tomcat5.5/bin  - startup, shutdown und andere Skripte und ausführbare Dateien&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/common - Allgemeine Klassen, die von Catalina und anderen Webapplikationen benutzt werden können&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/conf – Server-Konfigurationsdateien&lt;br /&gt;
            - server.xml -- Zentrale Einstellungsdatei &lt;br /&gt;
            - tomcat-users.xml -- Datei für die Nutzer und deren Rollen und Berechtigungen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/logs - Catalina- und Anwendungs-Logs&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/server - Klassen, die nur von Catalina verwendet werden; Tomcat Bibliotheken&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/shared - Klassen, die von allen Webapplikationen verwendet werden&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/webapps - Verzeichnis der Webapplikationen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/work - temporäre Aufbewahrung von Dateien und Verzeichnissen&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=706</id>
		<title>Tomcat 5.5</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tomcat_5.5&amp;diff=706"/>
		<updated>2009-08-04T14:36:48Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Apache Tomcat ist eine OpenSource Implementierung der Java Servlet und der Java Server Pages Technologien.&lt;br /&gt;
Zudem ist ein kompletter HTTP Server enthalten. In Produktivumgebungen läuft Tomcat meist in Kombination mit Apache, so dass Anfragen an Java Servlets bzw. JavaServer Pages vom Apache über einen Connector- Plugin an Tomcat weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5&lt;br /&gt;
 root@zero:~# apt-get install sun-java6-jdk&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Admin und Manager Web Interfaces:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-admin &lt;br /&gt;
&lt;br /&gt;
Dokumentation und Beispiel Webanwendungen:&lt;br /&gt;
 root@zero:~# apt-get install tomcat5.5-webapps&lt;br /&gt;
&lt;br /&gt;
 update-alternatives --config java&lt;br /&gt;
 update-alternatives --config javac&lt;br /&gt;
&lt;br /&gt;
=Verzeichnisstruktur=&lt;br /&gt;
/usr/share/tomcat5.5/bin  - startup, shutdown und andere Skripte und ausführbare Dateien&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/common - Allgemeine Klassen, die von Catalina und anderen Webapplikationen benutzt werden können&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/conf – Server-Konfigurationsdateien&lt;br /&gt;
            - server.xml -- Zentrale Einstellungsdatei &lt;br /&gt;
            - tomcat-users.xml -- Datei für die Nutzer und deren Rollen und Berechtigungen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/logs - Catalina- und Anwendungs-Logs&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/server - Klassen, die nur von Catalina verwendet werden; Tomcat Bibliotheken&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/shared - Klassen, die von allen Webapplikationen verwendet werden&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/webapps - Verzeichnis der Webapplikationen&lt;br /&gt;
&lt;br /&gt;
/usr/share/tomcat5.5/work - temporäre Aufbewahrung von Dateien und Verzeichnissen&lt;br /&gt;
&lt;br /&gt;
=Startscript=&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 stop&lt;br /&gt;
 root@zero:~# /etc/init.d/tomcat5.5 start&lt;br /&gt;
&lt;br /&gt;
Mit: &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 8180&lt;br /&gt;
 tcp        0      0 0.0.0.0:8180            0.0.0.0:*               LISTEN      8763/jsvc &lt;br /&gt;
kann verifiziert werden, ob der Server läuft.&lt;br /&gt;
&lt;br /&gt;
=Komponenten=&lt;br /&gt;
==Server==&lt;br /&gt;
Server ist der Repräsentant für die JVM-Instanz, in der Tomcat läuft. In jeder Tomcat-Konfiguration existiert daher nur genau ein Server, was auch durch das Root-Element &amp;lt;server&amp;gt; in der &amp;quot;server.xml&amp;quot; deutlich wird.&lt;br /&gt;
Server ist für den Shutdown-Vorgang von Tomcat verantwortlich, der dadurch ausgelöst wird, daß ein bestimmtes Shutdown-Kommando (standardmäßig &amp;quot;SHUTDOWN&amp;quot;) an einen bestimmten Shutdown-Port (standardmäßig 8005) gesendet wird. In Server sind daher Zugriffsmethoden für Shutdown-Kommando und -Port deklariert.&lt;br /&gt;
Da ein Server einen oder mehrere Services enthält, sind außerdem Methoden für diese Menge deklariert.&lt;br /&gt;
==Service==&lt;br /&gt;
Unter einem Service werden alle Connectoren zusammengefaßt, die auf dem gleichen Container arbeiten. So ermöglicht ein Service, dass ein Container über mehrere verschiedene Connectoren erreichbar ist.&lt;br /&gt;
==Connector==&lt;br /&gt;
Ein Connector verbindet Tomcat mit der Außenwelt. Er ist dafür verantwortlich, daß Requests von Clients empfangen und Responses an diese zurückgeschickt werden. Dazu ist er an einen bestimmten Port gebunden.&lt;br /&gt;
Weiter besteht seine Aufgabe darin, aus dem eingehenden Datenstrom ein passendes Request-Objekt sowie ein leeres Response-Objekt zu erzeugen und dieses Objektpaar dann an den richtigen Container (typischerweise einer Engine) weiterzuleiten. Nachdem dieser seine Arbeit erledigt hat, muß der Connector schließlich das Response-Objekt bzw. im Fehlerfall eine geeignete Fehler-Response an den Client zurücksenden.&lt;br /&gt;
==Engine==&lt;br /&gt;
Engine stellt die Catalina-Servlet-Engine und damit die oberste Ebene der Requestverarbeitung dar. Sie entscheidet anhand der Details aus dem Request-Objekt, an welchen der ihr untergeordneten Container (typischerweise Hosts) das Request-Response-Objektpaar weitergeleitet wird.&lt;br /&gt;
==Host==&lt;br /&gt;
Damit mehrere Websites auf dem gleichen Webserver betrieben werden können, wurde das Konzept der &amp;quot; Hosts&amp;quot; entwickelt. In Tomcat werden virtuelle Hosts durch die Schnittstelle Host abgebildet. Sie muß anhand des Requests entscheiden, an welchen Context das Request-Response-Objektpaar weiterzuleiten ist. Jeder Host hat einen Namen und eine (möglicherweise leere) Menge von Aliasnamen.&lt;br /&gt;
Sofern die Tomcat-Konfiguration eine Engine enthält, muß mindestens ein (Default-)Host definiert sein. Fehlt die Engine (weil Tomcat als Add-on betrieben wird), wird auch kein Host benötigt, weil die Context-Zuordnung bereits durch den zugrundliegenden Webserver geleistet wird.&lt;br /&gt;
==Context==&lt;br /&gt;
Die Schnittstelle Context repräsentiert die Schnittstelle javax.servlet.ServletContext aus der Java Servlet API gemäß der pro Web-Application genau ein ServletContext festgelegt ist.&lt;br /&gt;
Ein Context beantwortet alle Anfragen an eine speziell Webapplikation.&lt;br /&gt;
==Standardklassen==&lt;br /&gt;
Die verschiedenen Schnittstellen der Catalina-Basisarchitektur werden durch entsprechende Standardklassen implementiert, die im Paket org.apache.catalina.core zusammengefaßt sind. Ihre Namen richten sich nach dem Namen der implementierten Schnittstelle: StandardServer, StandardService, StandardEngine, StandardHost, StandardContext. Die letzten drei erben zusätzlich von der abstrakten Klasse ContainerBase, in der für fast alle Methoden von Container eine die Default-Implementierung vorgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
./server.xml&lt;br /&gt;
&lt;br /&gt;
Hauptkonfigurationsdatei des Servers (legt unter anderem auch den Port fest auf dem der Server läuft)  Mit den Angaben der server.xml wird der Aufbau des  Tomcat-Server beschrieben. Die Tomcat Komponenten können dabei auf verschiedene Weise miteinander kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
./server-minimal.xml&lt;br /&gt;
&lt;br /&gt;
Die minimalistische Variante von der server.xml, welche als Vorlage dienen kann.&lt;br /&gt;
&lt;br /&gt;
./web.xml&lt;br /&gt;
&lt;br /&gt;
Die Datei web.xml definiert Standardwerte für alle Webapplikationen die in diese Instanz von Tomcat geladen wurden.  &lt;br /&gt;
&lt;br /&gt;
./context.xml&lt;br /&gt;
&lt;br /&gt;
Die Inhalte dieser Datei werden für jede Webapplikation geladen.&lt;br /&gt;
&lt;br /&gt;
./tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Zentrale Datei zur Verwaltung von Benutzer und Zuweisung der Benutzerrechte.&lt;br /&gt;
&lt;br /&gt;
./catalina.policy&lt;br /&gt;
&lt;br /&gt;
Ansammlung von Sicherheitsrichtlinien, welche angewandt werden, wenn Tomcat mit dem Attribut „-security“ aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
./catalina.properties&lt;br /&gt;
&lt;br /&gt;
Datei die es ermöglicht Zugriffsbeschänkungen auf Java-Basis vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
./logging.properties&lt;br /&gt;
&lt;br /&gt;
Diese Datei legt die Standardparameter für das Loggin fest.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/host-manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Host-Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
./Catalina/localhost/manager.xml&lt;br /&gt;
&lt;br /&gt;
Mittels ihr lässt sich der Inhalt der Tomcat Manager Webapplicationen ändern.&lt;br /&gt;
&lt;br /&gt;
==server.xml==&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
&lt;br /&gt;
Oberstes Element in der Datei server.xml: definiert einen Server mit seinen Services und sorgt für dessen Konstruktion&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port: Port für Shutdown auf der IP-Adresse 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
shutdown: Schlüsselwort für Shutdown (Herunterfahren)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service&lt;br /&gt;
&lt;br /&gt;
Gruppiert Container für Servlet-Verarbeitung (etwa Engine) mit dessen Konnektoren&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
name : Name dieses Services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connector&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Verbindung zwischen Client und Server - Verarbeitung von Request- und Response-Objekten&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
port : TCP-Port, auf dem der Server-Socket horcht&lt;br /&gt;
&lt;br /&gt;
maxHttpHeaderSize : Größe der Header-Informationen in Bytes &lt;br /&gt;
&lt;br /&gt;
maxThreads : Maximale Anzahl von parallelen Anfragen die dieser Connector erzeugt&lt;br /&gt;
&lt;br /&gt;
maxSpareThreads : Maximale Anzahl von Request-verarbeitenden Threads, die im ThreadPool verbleiben&lt;br /&gt;
&lt;br /&gt;
minSpareThreads : Minimale Anzahl an wartenden Threads für die Anfragebearbeitung&lt;br /&gt;
&lt;br /&gt;
enableLookups : führe DNS-Anfrage durch&lt;br /&gt;
&lt;br /&gt;
redirectPort : Umleitung auf einen Port&lt;br /&gt;
&lt;br /&gt;
acceptCount : Größe der Socket-Warteschlange für eingehende Verbindungsanfragen&lt;br /&gt;
&lt;br /&gt;
connectionTimeout : Zeit in ms, die bis auf die Antwort einer Anfrage gewartet wird&lt;br /&gt;
&lt;br /&gt;
disableUploadTimeout : Erlaubt dem Konnektor eine Unterdrückung des Connection-Timeout bei Upload-Anfragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Engine&lt;br /&gt;
&lt;br /&gt;
Container auf oberster Ebene zur Verarbeitung von Servlet-Anfragen.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
baseDir : Basisverzeichnis dieser Engine.&lt;br /&gt;
&lt;br /&gt;
defaultHost :Vorbelegung des Hostnamens&lt;br /&gt;
&lt;br /&gt;
name : Logischer Name dieser Engine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Host&lt;br /&gt;
&lt;br /&gt;
Virtueller Host mit eigenen Web-Anwendungen&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
appBase : Wurzel für eigeneWeb-Anwendungen&lt;br /&gt;
&lt;br /&gt;
name : Vollqualifizierter Hostname (mit Domain)&lt;br /&gt;
&lt;br /&gt;
unpackWARs : entpacke alle WAR's in das  Verzeichnis &amp;lt;appBase&amp;gt;, bevor die Anwendungen aktiv  wird&lt;br /&gt;
&lt;br /&gt;
autoDeploy : automatisches Deployment eigener Anwendungen im Verzeichnis &amp;lt;appBase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xmlNamespaceAware : web.xml auf korrekte Verwendung von XML Namespaces prüfen&lt;br /&gt;
&lt;br /&gt;
mlValidation : web.xml auf Gültigkeit überprüfen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
Konfiguration des Containers für eine Web-Anwendung auf einem virtuellen Host.&lt;br /&gt;
&lt;br /&gt;
Attribute:&lt;br /&gt;
&lt;br /&gt;
path : Pfad zu dieser Web-Anwendung (URI-Anteil)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deployer&lt;br /&gt;
&lt;br /&gt;
Clusterweites Deployment von War-Archiven.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
definiert einen Umgebungseintrag (&amp;lt;env-entry&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logger / Filelogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) in eine Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ErrorLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdErr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OutLogger&lt;br /&gt;
&lt;br /&gt;
Ausgabe für Logging-, Debugging- und Fehlermeldungen (inkl. stack traces) nach StdOut&lt;br /&gt;
&lt;br /&gt;
==web.xml==&lt;br /&gt;
Während in der server.xml festgelegt wird, wie der Tomcat-Servers konkret aufgebaut sein soll, stehen in der web.xml Angaben zu Standard-Servlets, u.a. dem JSP-Servlet sowie weitere Angaben zu den Einstellungen von Session Timeout und MIME-Typ-Zuweisungen. Es handelt sich dabei um Standardeinstellungen, die für jede Web-Application ergänzt oder überschrieben werden können. Dazu dient eine weitere web.xml, die für jede Web-Application existieren muß.&lt;br /&gt;
&lt;br /&gt;
==catalina.policy==&lt;br /&gt;
Sobald der Security Manager aktiviert ist, darf eine Java-Klasse erst einmal gar nichts mehr. Alle Aktionen wie z.B. das Lesen/ Schreiben von Properties, Dateisystemzugriffe, Socket-Zugriffe sind per se verboten.Mit einer Policy-Datei geben wir nun jede notwendige und von uns gewollte Aktion&lt;br /&gt;
mittels entsprechender Regeln wieder frei und ermöglichen so, dass die entsprechende Klasse einwandfrei arbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
grant codeBase &amp;quot;file:${java.home}/lib/-&amp;quot;&lt;br /&gt;
{  permission java.security.AllPermission;&lt;br /&gt;
};&lt;br /&gt;
Die Regel im ersten Beispiel gibt den JARs (Java Archiv) im Verzeichnis lib der Standard-Java-Installation alle Rechte. Bei den Angaben von Ressourcen im Dateisystem können Platzhalter verwendet werden:&lt;br /&gt;
1. „-“ (Bindestrich) für alle Dateien und Unterverzeichnisse rekursiv,&lt;br /&gt;
2. ,,*&amp;quot; nur für alle Dateien in dem angegebenen Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
=Realms, Roles und User=&lt;br /&gt;
&lt;br /&gt;
Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen. &lt;br /&gt;
Ein Realm kann auf den Engine, Host oder Context Containern konfiguriert werden. &lt;br /&gt;
&lt;br /&gt;
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.&lt;br /&gt;
Innerhalb des Tags tomcat-users (in der Datei $CATALINA_HOME/conf/tomcat-user.xml) werden die Rollen mit einem role Tag definiert. Jeder Benutzer wird mit einem user Tag definiert. Dieses Tag hat die Attribute name, password und roles. Die Roles, denen der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag festgelegt. Eine Beispiel tomcat-user.xml könnte also wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;tomcat-users&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;manager&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;role rolename=&amp;quot;admin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;tomcat&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;both&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;tomcat,role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;role1&amp;quot; password=&amp;quot;tomcat&amp;quot; roles=&amp;quot;role1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;user username=&amp;quot;xinux&amp;quot; password=&amp;quot;xinux&amp;quot; roles=&amp;quot;tomcat,admin,manager,role1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ede Reihe welche mit „&amp;lt;user“ beginnt spezifiziert einen Tomcat User und seine Rolle (den Dienst welchen er ausführen darf). Die vorletzte Zeile legte eine Benutzer namens „xinux“ mit dem Passwort „xinux“ an, welcher auch administrative Rechte besitzen soll, sprich ggf. Tomcat über die Weboberfläche administrieren darf. &lt;br /&gt;
&lt;br /&gt;
Der Unterschied zwischen dem „admin“ und der „manager“ Role besteht darin, dass man als „admin“ unter anderem Services, Host, Connectors, usw. erstellen kann. Ausserdem erhält man Zugriff auf die Benutzer- und Gruppenverwaltung. Als „manager“ hingegen kann man z. B. Applikationen starten, neu starten bzw. stoppen, sich den Serverstatus anzeigen lassen u.ä.&lt;br /&gt;
&lt;br /&gt;
=Tomcat SSL=&lt;br /&gt;
Zertifikat erstellen:&lt;br /&gt;
 /usr/lib/jvm/java-1.5.0-gcj-4.2-1.5.0.0/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe eines keystore-Passwortes und der gewünschten Daten, wird eine Datei &amp;quot;.keystore&amp;quot; im Homeverzeichnis des aufrufenden Benutzers erstellt.&lt;br /&gt;
&lt;br /&gt;
Verschieben der Datei ins tomcat Konfigurations Verzeichnis (falls nicht dort erstellt):&lt;br /&gt;
&lt;br /&gt;
 mv .keystore /etc/tomcat5.5/&lt;br /&gt;
&lt;br /&gt;
Anpassung der server.xml:&lt;br /&gt;
Bei folgendem Eintrag Kommentarzeichen enfernen und um den Eintrag keystorePass=“&amp;lt;gewähltes Passwort&amp;gt;“ ergänzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; maxHttpHeaderSize=&amp;quot;8192&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; minSpareThreads=&amp;quot;25&amp;quot; maxSpareThreads=&amp;quot;75&amp;quot;&lt;br /&gt;
               enableLookups=&amp;quot;false&amp;quot; disableUploadTimeout=&amp;quot;true&amp;quot;&lt;br /&gt;
               acceptCount=&amp;quot;100&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;&lt;br /&gt;
               keystoreFile=“/usr/local/tomcat/conf/.keystore“&lt;br /&gt;
               keystorePass=&amp;quot;xinuxer&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend Tomcat neu starten und mit „netstat -lntp“ überprüfen ob Port 8443 freigeschaltet ist.&lt;br /&gt;
Danach sollte ein Zugriff auf den Tomcat mit der URL „https://localhost:8443“ möglich sein.&lt;br /&gt;
&lt;br /&gt;
=Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen=&lt;br /&gt;
Tomcat liefert von Haus aus einige Web-Anwendungen mit. Die Anwendungen &amp;quot;jsp-examples&amp;quot; und &amp;quot;servlets-examples&amp;quot; dienen Einsteigern als mögliche Startpunkte und Beispiele für erste Schritte mit den jeweiligen Technologien. Wichtig ist natürlich auch die Anwendung &amp;quot;tomcat-docs&amp;quot;, die die vollständige Doku enthält. Vor allem aber zwei Anwendungen verdienen Beachtung: Die &amp;quot;manager&amp;quot;- und die &amp;quot;admin&amp;quot;-Anwendungen. &lt;br /&gt;
Die &amp;quot;manager&amp;quot;-Anwendung ermöglicht es, gezielt einzelne Anwendungen zu löschen, neu zu starten, zu stoppen oder auch neue WAR-Dateien aufzuspielen. Zum Hochladen einer neuen Anwendung wird einfach die war-Datei einer Anwendung mittels &amp;quot;Browse&amp;quot; aus dem Dateisystem ausgewählt und dann durch Absenden des Formulars installiert.&lt;br /&gt;
&lt;br /&gt;
Die obige Auflistung der Möglichkeiten der &amp;quot;manager&amp;quot;-Anwendung macht deutlich, dass der Zugriff auf die &amp;quot;manager&amp;quot;-Anwendung gut geschützt werden muss. Ansonsten kann man von &amp;quot;remote&amp;quot; aus den Container komplett lahm legen oder einfach neue Apps aufspielen. Wenn die &amp;quot;manager&amp;quot;-Anwendung überhaupt (außerhalb des eigenen Netzwerkes) sichtbar sein soll, sollte unbedingt sicher gestellt sein, dass die Anwendung nur über eine gesicherte HTTPS-Verbindung genutzt werden kann und dass bei Produktiv-Umgebungen gescheite Passwörter verwendet werden. &lt;br /&gt;
Die &amp;quot;admin&amp;quot;-Anwendung erleichtert einem ebenfalls das Leben. So sind einige Konfigurationen hier bequemer vorzunehmen als über die Konfigurationsdateien.&lt;br /&gt;
&lt;br /&gt;
=Apache und Tomcat verbinden=&lt;br /&gt;
mod_jk ist ein Tomcat-Apache Plug-In, das für die Kommunikation zwischen Apache und Tomcat zuständig ist. Die erste Voraussetzung, damit dieser Connector eingesetzt werden kann, ist die DSO Unterstützung von Apache. Diese muss dem Web-Server einkompiliert worden sein. Wenn das folgende Kommando unter anderem &amp;quot;mod_so.c&amp;quot; zurück gibt, ist alles okay - ansonsten muss Apache mit DSO-Unterstützung neu kompiliert werden... &lt;br /&gt;
   $apache2 -l&lt;br /&gt;
     Compiled in modules:&lt;br /&gt;
       core.c&lt;br /&gt;
       prefork.c&lt;br /&gt;
       http_core.c&lt;br /&gt;
       mod_so.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apache JK Connector installieren:&lt;br /&gt;
 root@zero:~# apt-get install  libapache2-mod-jk&lt;br /&gt;
&lt;br /&gt;
Datei jk.conf in /etc/apache2/mods_available/ anlegen:&lt;br /&gt;
 &amp;lt;IfModule mod_jk.c&amp;gt;&lt;br /&gt;
    JkWorkersFile          /etc/apache2/workers.properties&lt;br /&gt;
    JkLogFile              /var/logs/apache2/mod_jk.log&lt;br /&gt;
    JkLogLevel             info&lt;br /&gt;
    JkLogStampFormat       &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;&lt;br /&gt;
    JkOptions              +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;
    JkRequestLogFormat     &amp;quot;%w %V %T&amp;quot;&lt;br /&gt;
    JkMount                /TomcatContext/*   myworker&lt;br /&gt;
    JkMount                /manager/* myworker&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach mods_enabled verlinken:&lt;br /&gt;
 root@zero:/etc/apache2/mods-enabled# ln -s ../mods-available/jk.conf&lt;br /&gt;
&lt;br /&gt;
Datei workers.properties unter /etc/apache2/ anlegen:&lt;br /&gt;
 workers.list=myworker&lt;br /&gt;
 workers.myworker.type=ajp13&lt;br /&gt;
 workers.myworker.host=localhost&lt;br /&gt;
 workers.myworker.port=8009&lt;br /&gt;
 workers.myworker.cachesize=10&lt;br /&gt;
 workers.myworker.socket_keepalive=1&lt;br /&gt;
 workers.myworker.recycle_timeout=300&lt;br /&gt;
&lt;br /&gt;
Danach muss der apache Webserver neu gestartet werden.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Apache2_Aufgaben&amp;diff=656</id>
		<title>Apache2 Aufgaben</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Apache2_Aufgaben&amp;diff=656"/>
		<updated>2009-08-04T08:40:05Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: Die Seite wurde neu angelegt: 1.	Wie heisst das eigentliche Binary (unter linux )das den Apache Webserver darstellt ?   2.	Auf welchem Protokoll  basiert der Apache ?    	Was bedeuten folgende Eintr...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.	Wie heisst das eigentliche Binary (unter linux )das den Apache Webserver darstellt ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.	Auf welchem Protokoll  basiert der Apache ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Was bedeuten folgende Einträge in der httpd.conf ? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.	ServerType 	inetd&lt;br /&gt;
&lt;br /&gt;
4.	Port	80&lt;br /&gt;
&lt;br /&gt;
5.	ServerRoot	/usr/local/apache&lt;br /&gt;
&lt;br /&gt;
6.	TranferLog	logs/acces.log&lt;br /&gt;
&lt;br /&gt;
7.	StartServers	10 &lt;br /&gt;
&lt;br /&gt;
8.	ServerName www.xinux.de&lt;br /&gt;
&lt;br /&gt;
9.	&amp;lt;Directory /usr/local/apache/htdocs/suxers&amp;gt;&lt;br /&gt;
	order deny  allow &lt;br /&gt;
	deny from all&lt;br /&gt;
	allow from 10.0.0.0/255.0.0.0&lt;br /&gt;
	&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10.	&amp;lt;Location /musiker/jimi.html &amp;gt;&lt;br /&gt;
	order allow deny &lt;br /&gt;
	allow from all&lt;br /&gt;
	deny from  192.168.1.21&lt;br /&gt;
	&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11.	MaxKeepAliveRequests 100&lt;br /&gt;
&lt;br /&gt;
12.	KeepAliveTimeout 15&lt;br /&gt;
&lt;br /&gt;
13.	MinSpareServers 5&lt;br /&gt;
&lt;br /&gt;
14.	MaxSpareServers 10&lt;br /&gt;
&lt;br /&gt;
15.	StartServers 5&lt;br /&gt;
&lt;br /&gt;
16.	MaxClients 150&lt;br /&gt;
&lt;br /&gt;
17.	Group nogroup&lt;br /&gt;
&lt;br /&gt;
18.	ServerAdmin root@luxana.alpha.quadrant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
19.	DocumentRoot &amp;quot;/usr/local/apache/htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
20.	Tragen Sie die URL's  www.guckemo.de und  www.aweiaba.de  auf  Ihrem 	Nameserver so ein so das sie auf die selbe IP NUMMER antworten.&lt;br /&gt;
	(Revererse Zone nicht vergessen !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a. 	Das Dokumentroot  sollte die Konvention  /var/www/URL haben&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
b.	Geloggt (Error und Tranfer) wird in   /var/www/URL/logs  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
c.	Die Email des admin lautet für beide Sites  webmaster@xux.de &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
d.	Für beide Sites soll das Folgen von Symbolischen Links aktiviert sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
e. 	Auf der url von gueckemo soll eine Unterverzeichnis /privat existieren&lt;br /&gt;
	der authorisierte  USER heinz und dem PASSWORD lesen darf  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
e.	Auf die URL www.aweiaba.de  soll nur von Ihrem Netz zugriffen werden dürfen &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
f.	Das cgi Verzeichnis  sollte unter /var/www/cgi-bin fuer bei URLs liegen&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Aufgaben&amp;diff=655</id>
		<title>Aufgaben</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Aufgaben&amp;diff=655"/>
		<updated>2009-08-04T08:39:50Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Linux Grundlagen-Augaben|Linux Grundlagen-Augaben]]&lt;br /&gt;
* [[Linux Misc]]&lt;br /&gt;
* [[Administration Aufgaben]]&lt;br /&gt;
* [[Netzwerkkonfiguration Aufgaben]]&lt;br /&gt;
* [[LVM Aufgaben]]&lt;br /&gt;
* [[RAID Aufgaben]]&lt;br /&gt;
* [[NTP Aufgaben]]&lt;br /&gt;
* [[APT Aufgaben]]&lt;br /&gt;
* [[Aptitude Aufgaben]]&lt;br /&gt;
* [[dpkg Aufgaben]]&lt;br /&gt;
* [[tar Aufgaben]]&lt;br /&gt;
* [[Module]]&lt;br /&gt;
* [[Cron Aufgaben]]&lt;br /&gt;
* [[Apache2 Aufgaben]]&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Aufgaben&amp;diff=644</id>
		<title>Aufgaben</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Aufgaben&amp;diff=644"/>
		<updated>2009-07-31T11:03:42Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Linux Grundlagen-Augaben|Linux Grundlagen-Augaben]]&lt;br /&gt;
* [[Linux Misc]]&lt;br /&gt;
* [[Administration Aufgaben]]&lt;br /&gt;
* [[Netzwerkkonfiguration Aufgaben]]&lt;br /&gt;
* [[LVM Aufgaben]]&lt;br /&gt;
* [[RAID Aufgaben]]&lt;br /&gt;
* [[NTP Aufgaben]]&lt;br /&gt;
* [[APT Aufgaben]]&lt;br /&gt;
* [[Aptitude Aufgaben]]&lt;br /&gt;
* [[dpkg Aufgaben]]&lt;br /&gt;
* [[tar Aufgaben]]&lt;br /&gt;
* [[Module]]&lt;br /&gt;
* [[Cron Aufgaben]]&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Aufgaben&amp;diff=643</id>
		<title>Aufgaben</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Aufgaben&amp;diff=643"/>
		<updated>2009-07-31T11:03:28Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Linux Grundlagen-Augaben|Linux Grundlagen-Augaben]]&lt;br /&gt;
* [[Linux Misc]]&lt;br /&gt;
* [[Administration Aufgaben]]&lt;br /&gt;
* [[Netzwerkkonfiguration Aufgaben]]&lt;br /&gt;
* [[LVM Aufgaben]]&lt;br /&gt;
* [[RAID Aufgaben]]&lt;br /&gt;
* [[NTP Aufgaben]]&lt;br /&gt;
* [[APT Aufgaben]]&lt;br /&gt;
* [[Aptitude Aufgaben]]&lt;br /&gt;
* [[dpkg Aufgaben]]&lt;br /&gt;
* [[tar Aufgaben]]&lt;br /&gt;
* [[Module]]&lt;br /&gt;
* [[Cron]]&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Cron&amp;diff=642</id>
		<title>Cron</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Cron&amp;diff=642"/>
		<updated>2009-07-31T10:56:52Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Aufbau einer Crontab Datei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der '''cron'''-Daemon ist eine Jobsteuerung von Unix bzw. unixartigen Betriebssystemen wie Linux, BSD oder Mac OS X, die wiederkehrende Aufgaben ''(cronjobs)'' automatisch zu einer bestimmten Zeit ausführen kann.&lt;br /&gt;
&lt;br /&gt;
Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien.&lt;br /&gt;
&lt;br /&gt;
Der Cron-Daemon überwacht dazu verschiedene Dateien und Verzeichnisse, in denen Anweisungen liegen, die in regelmäßigen Abständen ausgeführt werden sollen. Diese Anweisungen werden Cron-Tabellen oder eben crontabs genannt. &lt;br /&gt;
Cron läd beim Start all die Dateien und Verzeichnisse, die er überwacht in den Arbeitsspeicher und überprüft jede Minute einmal, ob darin Jobs enthalten sind, die in der aktuellen Minute ausgeführt werden sollen. Wenn ja, so führt er sie aus. Außerdem überprüft cron jede Minute, ob sich an den Dateien oder Verzeichnissen etwas geändert hat und - falls ja - übernimmt er diese Änderungen im Speicher. &lt;br /&gt;
Es gibt also mehrere Möglichkeiten, dem Cron-Daemon einen Job zur Ausführung zu übergeben. Die einzelnen Möglichkeiten sind: &lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere Möglichkeiten, dem Cron-Daemon einen Job zur Ausführung zu übergeben. Die einzelnen Möglichkeiten sind: &lt;br /&gt;
&lt;br /&gt;
'''User-Crontabs'''&lt;br /&gt;
&lt;br /&gt;
Jeder User des Systems kann eine eigene Crontab (also eine Datei mit Anweisungen für Cron) erstellen und bearbeiten. Die Jobs, die darin aufgeführt sind werden von Cron unter der Userkennung des Users ausgeführt, um dessen Crontab-Datei es sich handelt. Die User-Crontabs werden nicht direkt mit einem Editor verändert, sondern mit dem Befehl crontab(1). &lt;br /&gt;
&lt;br /&gt;
'''Systemweite Crontab-Datei'''&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis /etc existiert eine Datei crontab, die ebenfalls Cronjobs definiert. Das Format dieser Datei unterscheidet sich etwas von dem der Usercrontabs - siehe weiter unten... &lt;br /&gt;
&lt;br /&gt;
'''cron.d Verzeichnis'''&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis /etc kann ein Verzeichnis cron.d existieren, das Dateien im selben Format wie /etc/crontab enthalten darf. Auch diese Dateien werden von cron überwacht und darin enthaltene Befehle werden ausgeführt. &lt;br /&gt;
'''cron.{hourly,daily,weekly,monthly} Verzeichnisse'''&lt;br /&gt;
Ebenfalls im /etc/verzeichnis können Verzeichnisse der Namen cron.hourly, cron.daily, cron.weekly und cron.monthly existieren. Diese Verzeichnisse enthalten nicht crontabs, sondern Shellscripts, die entsprechend stündlich, täglich, wöchentlich oder monatlich ausgeführt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Aufbau einer Crontab Datei=&lt;br /&gt;
&lt;br /&gt;
Die auszuführenden Befehle werden in einer benutzereigenen Tabelle gespeichert, der sogenannten ''crontab''. Jeder Benutzer kann eine crontab erstellen. &lt;br /&gt;
Crontab-Einträge sind entweder Definitionen von Shellvariablen oder zeitgesteuerte Cron-Befehle. Leere Zeilen oder Zeilen, die mit einem # beginnen werden ignoriert.&lt;br /&gt;
&lt;br /&gt;
Normalerweise schickt cron alle Ausgaben von ausgeführten Kommandos per Mail an den User, der das Cron-Kommando ausführen liess. Die Variable MAILTO kann diese Eigenschaft verändern. Wenn sie den Namen eines Users enthält, so werden ihm und nicht dem ursprünglichen Cron-User die Mail geschickt. Ist die Variable MAILTO definiert, aber leer, so wird gar keine Mail verschickt. &lt;br /&gt;
&lt;br /&gt;
Diese zeitgesteuerten Cron-Befehle bestehen aus sechs Spalten; die ersten fünf dienen der Zeitangabe (Minute, Stunde, Tag, Monat, Wochentag), alle weiteren Zeichen bis zum Zeilenumbruch werden als der auszuführende Befehl aufgefasst. Die einzelnen Spalten werden durch Leerzeichen oder Tabulatoren getrennt.&lt;br /&gt;
 &lt;br /&gt;
Beispiel einer ''Crontab'':&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #M    S   T M W    Befehl&lt;br /&gt;
 5     *   * * *    /usr/bin/message.sh&lt;br /&gt;
 */5   *   * * *    /usr/bin/message.sh&lt;br /&gt;
 59    23  * * 0    cp /var/log/messages /log/backup/messages&lt;br /&gt;
 0     0   * * *    cp /var/log/syslog /log/backup/syslog&lt;br /&gt;
 20,30 1   * * 1-5  /usr/bin/work.sh&lt;br /&gt;
&lt;br /&gt;
Der erste Befehl (beginnend mit &amp;lt;tt&amp;gt;5…&amp;lt;/tt&amp;gt;) wird fünf Minuten nach jeder vollen Stunde, der zweite alle 5 Minuten (die Schrittweite wird durch &amp;lt;tt&amp;gt;*/Schrittweite&amp;lt;/tt&amp;gt; angegeben), der dritte einmal pro Woche sonntags um 23:59 Uhr, der vierte täglich um 00:00 Uhr und der fünfte montags bis freitags jeweils um 01:20 und 01:30 ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Die Struktur der Befehlszeile ist wie folgt zu verstehen:&lt;br /&gt;
&lt;br /&gt;
 * * * * * auszuführender Befehl&lt;br /&gt;
 ┬ ┬ ┬ ┬ ┬&lt;br /&gt;
 │ │ │ │ │&lt;br /&gt;
 │ │ │ │ └──── Wochentag (0-7 oder Sun, Mon, Tue,etc) (Sonntag =0 oder =7)&lt;br /&gt;
 │ │ │ └────── Monat (1-12 oder Jan, Feb, etc)&lt;br /&gt;
 │ │ └──────── Tag (1-31)&lt;br /&gt;
 │ └────────── Stunde (0-23)&lt;br /&gt;
 └──────────── Minute (0-59)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Feld für eine Zeitangab kann dabei mehrere Angaben enthalten:&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|&lt;br /&gt;
|Syntax&lt;br /&gt;
|Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|Voller Bereich&lt;br /&gt;
|*&lt;br /&gt;
|Bei Minute: 0,1,2,3,...,59&lt;br /&gt;
|-&lt;br /&gt;
|Ausgweählter Bereich&lt;br /&gt;
|1-5&lt;br /&gt;
|entspricht 1,2,3,4,5&lt;br /&gt;
|-&lt;br /&gt;
|Liste&lt;br /&gt;
|1,5,10&lt;br /&gt;
|nur an den angegebenen Werten&lt;br /&gt;
|-&lt;br /&gt;
|Kombination&lt;br /&gt;
|2,5,30-40&lt;br /&gt;
|Kombination aus Liste und Bereich&lt;br /&gt;
|-&lt;br /&gt;
|Schritte&lt;br /&gt;
|*/5&lt;br /&gt;
|bei Minute: alle 5 Minuten&lt;br /&gt;
|-&lt;br /&gt;
|Kombination&lt;br /&gt;
|2-47/5&lt;br /&gt;
|alle 5 Minten im Bereich 2-47 (2,7,12,...)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Werden in einem Feld Namen benutzt, so sind Bereiche und Listen nicht erlaubt.&lt;br /&gt;
&lt;br /&gt;
Statt der ersten 5 Felder zur Zeitangabe können auch folgende speziellen Angaben erfolgen:&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Angabe&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|@reboot&lt;br /&gt;
|Läuft einmal bei einem Reboot&lt;br /&gt;
|-&lt;br /&gt;
|@yearly        &lt;br /&gt;
|Läuft einmal im Jahr (0 0 1 1 *)&lt;br /&gt;
|-&lt;br /&gt;
|@annually      &lt;br /&gt;
|Läuft einmal im Jahr (0 0 1 1 *)&lt;br /&gt;
|-&lt;br /&gt;
|@monthly&lt;br /&gt;
|Läuft einmal im Monat (0 0 1 * *)&lt;br /&gt;
|-&lt;br /&gt;
|@weekly&lt;br /&gt;
|Läuft einmal wöchentlich (0 0 * * 0)&lt;br /&gt;
|-&lt;br /&gt;
|@daily&lt;br /&gt;
|Läuft einmal täglich (0 0 * * *)&lt;br /&gt;
|-&lt;br /&gt;
|@midnight&lt;br /&gt;
|Läuft einmal täglich (0 0 * * *)&lt;br /&gt;
|-&lt;br /&gt;
|@hourly&lt;br /&gt;
|Läuft einmal stündlich (* * * *)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten von User Crontabs=&lt;br /&gt;
'''Ansehen der aktuellen Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -l&lt;br /&gt;
'''Erstellen / Bearbeiten der Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -e&lt;br /&gt;
'''Löschen der Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -r&lt;br /&gt;
'''Inhalt von vorhandener Datei als Crontab setzen'''&lt;br /&gt;
 root@nazgul:~# crontab dateiname&lt;br /&gt;
'''Ansehen der Crontab eines anderen Benutzers (nur root)'''&lt;br /&gt;
 root@nazgul:~# crontab -lu tina&lt;br /&gt;
&lt;br /&gt;
=System Crontab(s)=&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu User Crontabs gibt es ein zusätzliches Feld das angibt, unter welchem Benutzer der aufzurufende Befehl ausgeführt werden soll.&lt;br /&gt;
 M S            T M WT  User Befehl&lt;br /&gt;
 2 0,5,10,15,20 * * 1-6 root if [ -x /usr/sbin/pg_maintenance ]; then /usr/sbin/pg_maintenance --analyze &amp;gt;/dev/null; fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neben der Datei /etc/crontab und dem Verzeichnis /etc/cron.d existieren in vielen Linux-Distributionen (RedHat, Debian, SuSE,...) auch noch die Verzeichnisse &lt;br /&gt;
 /etc/cron.hourly&lt;br /&gt;
 /etc/cron.daily&lt;br /&gt;
 /etc/cron.weekly&lt;br /&gt;
 /etc/cron.monthly&lt;br /&gt;
&lt;br /&gt;
Diese Verzeichnisse enthalten keine Crontabs, sondern Programme, die entsprechend stündlich, täglich, wöchentlich oder monatlich einmal ausgeführt werden sollen. In der Regel handelt es sich bei diesen Programmen um Shellscripts, die dann wiederum bestimmte Programme aufrufen. &lt;br /&gt;
Die Ausführung dieser Programme steuert cron mit Hilfe der Datei '''/etc/crontab''' .&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis '''/etc/cron.d''' befinden sich Systemweit gültige Crontabs.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Cron&amp;diff=641</id>
		<title>Cron</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Cron&amp;diff=641"/>
		<updated>2009-07-31T10:56:35Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Aufbau einer Crontab Datei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der '''cron'''-Daemon ist eine Jobsteuerung von Unix bzw. unixartigen Betriebssystemen wie Linux, BSD oder Mac OS X, die wiederkehrende Aufgaben ''(cronjobs)'' automatisch zu einer bestimmten Zeit ausführen kann.&lt;br /&gt;
&lt;br /&gt;
Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien.&lt;br /&gt;
&lt;br /&gt;
Der Cron-Daemon überwacht dazu verschiedene Dateien und Verzeichnisse, in denen Anweisungen liegen, die in regelmäßigen Abständen ausgeführt werden sollen. Diese Anweisungen werden Cron-Tabellen oder eben crontabs genannt. &lt;br /&gt;
Cron läd beim Start all die Dateien und Verzeichnisse, die er überwacht in den Arbeitsspeicher und überprüft jede Minute einmal, ob darin Jobs enthalten sind, die in der aktuellen Minute ausgeführt werden sollen. Wenn ja, so führt er sie aus. Außerdem überprüft cron jede Minute, ob sich an den Dateien oder Verzeichnissen etwas geändert hat und - falls ja - übernimmt er diese Änderungen im Speicher. &lt;br /&gt;
Es gibt also mehrere Möglichkeiten, dem Cron-Daemon einen Job zur Ausführung zu übergeben. Die einzelnen Möglichkeiten sind: &lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere Möglichkeiten, dem Cron-Daemon einen Job zur Ausführung zu übergeben. Die einzelnen Möglichkeiten sind: &lt;br /&gt;
&lt;br /&gt;
'''User-Crontabs'''&lt;br /&gt;
&lt;br /&gt;
Jeder User des Systems kann eine eigene Crontab (also eine Datei mit Anweisungen für Cron) erstellen und bearbeiten. Die Jobs, die darin aufgeführt sind werden von Cron unter der Userkennung des Users ausgeführt, um dessen Crontab-Datei es sich handelt. Die User-Crontabs werden nicht direkt mit einem Editor verändert, sondern mit dem Befehl crontab(1). &lt;br /&gt;
&lt;br /&gt;
'''Systemweite Crontab-Datei'''&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis /etc existiert eine Datei crontab, die ebenfalls Cronjobs definiert. Das Format dieser Datei unterscheidet sich etwas von dem der Usercrontabs - siehe weiter unten... &lt;br /&gt;
&lt;br /&gt;
'''cron.d Verzeichnis'''&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis /etc kann ein Verzeichnis cron.d existieren, das Dateien im selben Format wie /etc/crontab enthalten darf. Auch diese Dateien werden von cron überwacht und darin enthaltene Befehle werden ausgeführt. &lt;br /&gt;
'''cron.{hourly,daily,weekly,monthly} Verzeichnisse'''&lt;br /&gt;
Ebenfalls im /etc/verzeichnis können Verzeichnisse der Namen cron.hourly, cron.daily, cron.weekly und cron.monthly existieren. Diese Verzeichnisse enthalten nicht crontabs, sondern Shellscripts, die entsprechend stündlich, täglich, wöchentlich oder monatlich ausgeführt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Aufbau einer Crontab Datei=&lt;br /&gt;
&lt;br /&gt;
Die auszuführenden Befehle werden in einer benutzereigenen Tabelle gespeichert, der sogenannten ''crontab''. Jeder Benutzer kann eine crontab erstellen. &lt;br /&gt;
Crontab-Einträge sind entweder Definitionen von Shellvariablen oder zeitgesteuerte Cron-Befehle. Leere Zeilen oder Zeilen, die mit einem # beginnen werden ignoriert.&lt;br /&gt;
&lt;br /&gt;
Normalerweise schickt cron alle Ausgaben von ausgeführten Kommandos per Mail an den User, der das Cron-Kommando ausführen liess. Die Variable MAILTO kann diese Eigenschaft verändern. Wenn sie den Namen eines Users enthält, so werden ihm und nicht dem ursprünglichen Cron-User die Mail geschickt. Ist die Variable MAILTO definiert, aber leer, so wird gar keine Mail verschickt. &lt;br /&gt;
&lt;br /&gt;
Diese zeitgesteuerten Cron-Befehle bestehen aus sechs Spalten; die ersten fünf dienen der Zeitangabe (Minute, Stunde, Tag, Monat, Wochentag), alle weiteren Zeichen bis zum Zeilenumbruch werden als der auszuführende Befehl aufgefasst. Die einzelnen Spalten werden durch Leerzeichen oder Tabulatoren getrennt.&lt;br /&gt;
 &lt;br /&gt;
Beispiel einer ''Crontab'':&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #M    S   T M W    Befehl&lt;br /&gt;
 5     *   * * *    /usr/bin/message.sh&lt;br /&gt;
 */5   *   * * *    /usr/bin/message.sh&lt;br /&gt;
 59    23  * * 0    cp /var/log/messages /log/backup/messages&lt;br /&gt;
 0     0   * * *    cp /var/log/syslog /log/backup/syslog&lt;br /&gt;
 20,30 1   * * 1-5  /usr/bin/work.sh&lt;br /&gt;
&lt;br /&gt;
Der erste Befehl (beginnend mit &amp;lt;tt&amp;gt;5…&amp;lt;/tt&amp;gt;) wird fünf Minuten nach jeder vollen Stunde, der zweite alle 5 Minuten (die Schrittweite wird durch &amp;lt;tt&amp;gt;*/Schrittweite&amp;lt;/tt&amp;gt; angegeben), der dritte einmal pro Woche sonntags um 23:59 Uhr, der vierte täglich um 00:00 Uhr und der fünfte montags bis freitags jeweils um 01:20 und 01:30 ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Die Struktur der Befehlszeile ist wie folgt zu verstehen:&lt;br /&gt;
&lt;br /&gt;
 * * * * * auszuführender Befehl&lt;br /&gt;
 ┬ ┬ ┬ ┬ ┬&lt;br /&gt;
 │ │ │ │ │&lt;br /&gt;
 │ │ │ │ └──── Wochentag (0-7 oder Sun, Mon, Tue,etc) (Sonntag =0 oder =7)&lt;br /&gt;
 │ │ │ └────── Monat (1-12 oder Jan, Feb, etc)&lt;br /&gt;
 │ │ └──────── Tag (1-31)&lt;br /&gt;
 │ └────────── Stunde (0-23)&lt;br /&gt;
 └──────────── Minute (0-59)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Feld für eine Zeitangab kann dabei mehrere Angaben enthalten:&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|&lt;br /&gt;
|Syntax&lt;br /&gt;
|Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|Voller Bereich&lt;br /&gt;
|*&lt;br /&gt;
|Bei Minute: 0,1,2,3,...,59&lt;br /&gt;
|-&lt;br /&gt;
|Ausgweählter Bereich&lt;br /&gt;
|1-5&lt;br /&gt;
|entspricht 1,2,3,4,5&lt;br /&gt;
|-&lt;br /&gt;
|Liste&lt;br /&gt;
|1,5,10&lt;br /&gt;
|nur an den angegebenen Werten&lt;br /&gt;
|-&lt;br /&gt;
|Kombination&lt;br /&gt;
|2,5,30-40&lt;br /&gt;
|Kombination aus Liste und Bereich&lt;br /&gt;
|-&lt;br /&gt;
|Schritte&lt;br /&gt;
|*/5&lt;br /&gt;
|bei Minute: alle 5 Minuten&lt;br /&gt;
|-&lt;br /&gt;
|Kombination&lt;br /&gt;
|2-47/5&lt;br /&gt;
|alle 5 Minten im Bereich 2-47 (2,7,12,...)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Werden in einem Feld Namen benutzt, so sind Bereiche und Listen nicht erlaubt.&lt;br /&gt;
&lt;br /&gt;
Statt der ersten 5 Felder zur Zeitangabe können auch folgende speziellen Angaben erfolgen:&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Angabe&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|@reboot&lt;br /&gt;
|Läuft einma bei einem Reboot&lt;br /&gt;
|-&lt;br /&gt;
|@yearly        &lt;br /&gt;
|Läuft einmal im Jahr (0 0 1 1 *)&lt;br /&gt;
|-&lt;br /&gt;
|@annually      &lt;br /&gt;
|Läuft einmal im Jahr (0 0 1 1 *)&lt;br /&gt;
|-&lt;br /&gt;
|@monthly&lt;br /&gt;
|Läuft einmal im Monat (0 0 1 * *)&lt;br /&gt;
|-&lt;br /&gt;
|@weekly&lt;br /&gt;
|Läuft einmal wöchentlich (0 0 * * 0)&lt;br /&gt;
|-&lt;br /&gt;
|@daily&lt;br /&gt;
|Läuft einmal täglich (0 0 * * *)&lt;br /&gt;
|-&lt;br /&gt;
|@midnight&lt;br /&gt;
|Läuft einmal täglich (0 0 * * *)&lt;br /&gt;
|-&lt;br /&gt;
|@hourly&lt;br /&gt;
|Läuft einmal stündlich (* * * *)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten von User Crontabs=&lt;br /&gt;
'''Ansehen der aktuellen Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -l&lt;br /&gt;
'''Erstellen / Bearbeiten der Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -e&lt;br /&gt;
'''Löschen der Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -r&lt;br /&gt;
'''Inhalt von vorhandener Datei als Crontab setzen'''&lt;br /&gt;
 root@nazgul:~# crontab dateiname&lt;br /&gt;
'''Ansehen der Crontab eines anderen Benutzers (nur root)'''&lt;br /&gt;
 root@nazgul:~# crontab -lu tina&lt;br /&gt;
&lt;br /&gt;
=System Crontab(s)=&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu User Crontabs gibt es ein zusätzliches Feld das angibt, unter welchem Benutzer der aufzurufende Befehl ausgeführt werden soll.&lt;br /&gt;
 M S            T M WT  User Befehl&lt;br /&gt;
 2 0,5,10,15,20 * * 1-6 root if [ -x /usr/sbin/pg_maintenance ]; then /usr/sbin/pg_maintenance --analyze &amp;gt;/dev/null; fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neben der Datei /etc/crontab und dem Verzeichnis /etc/cron.d existieren in vielen Linux-Distributionen (RedHat, Debian, SuSE,...) auch noch die Verzeichnisse &lt;br /&gt;
 /etc/cron.hourly&lt;br /&gt;
 /etc/cron.daily&lt;br /&gt;
 /etc/cron.weekly&lt;br /&gt;
 /etc/cron.monthly&lt;br /&gt;
&lt;br /&gt;
Diese Verzeichnisse enthalten keine Crontabs, sondern Programme, die entsprechend stündlich, täglich, wöchentlich oder monatlich einmal ausgeführt werden sollen. In der Regel handelt es sich bei diesen Programmen um Shellscripts, die dann wiederum bestimmte Programme aufrufen. &lt;br /&gt;
Die Ausführung dieser Programme steuert cron mit Hilfe der Datei '''/etc/crontab''' .&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis '''/etc/cron.d''' befinden sich Systemweit gültige Crontabs.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Cron&amp;diff=640</id>
		<title>Cron</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Cron&amp;diff=640"/>
		<updated>2009-07-31T10:56:26Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Aufbau einer Crontab Datei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der '''cron'''-Daemon ist eine Jobsteuerung von Unix bzw. unixartigen Betriebssystemen wie Linux, BSD oder Mac OS X, die wiederkehrende Aufgaben ''(cronjobs)'' automatisch zu einer bestimmten Zeit ausführen kann.&lt;br /&gt;
&lt;br /&gt;
Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien.&lt;br /&gt;
&lt;br /&gt;
Der Cron-Daemon überwacht dazu verschiedene Dateien und Verzeichnisse, in denen Anweisungen liegen, die in regelmäßigen Abständen ausgeführt werden sollen. Diese Anweisungen werden Cron-Tabellen oder eben crontabs genannt. &lt;br /&gt;
Cron läd beim Start all die Dateien und Verzeichnisse, die er überwacht in den Arbeitsspeicher und überprüft jede Minute einmal, ob darin Jobs enthalten sind, die in der aktuellen Minute ausgeführt werden sollen. Wenn ja, so führt er sie aus. Außerdem überprüft cron jede Minute, ob sich an den Dateien oder Verzeichnissen etwas geändert hat und - falls ja - übernimmt er diese Änderungen im Speicher. &lt;br /&gt;
Es gibt also mehrere Möglichkeiten, dem Cron-Daemon einen Job zur Ausführung zu übergeben. Die einzelnen Möglichkeiten sind: &lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere Möglichkeiten, dem Cron-Daemon einen Job zur Ausführung zu übergeben. Die einzelnen Möglichkeiten sind: &lt;br /&gt;
&lt;br /&gt;
'''User-Crontabs'''&lt;br /&gt;
&lt;br /&gt;
Jeder User des Systems kann eine eigene Crontab (also eine Datei mit Anweisungen für Cron) erstellen und bearbeiten. Die Jobs, die darin aufgeführt sind werden von Cron unter der Userkennung des Users ausgeführt, um dessen Crontab-Datei es sich handelt. Die User-Crontabs werden nicht direkt mit einem Editor verändert, sondern mit dem Befehl crontab(1). &lt;br /&gt;
&lt;br /&gt;
'''Systemweite Crontab-Datei'''&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis /etc existiert eine Datei crontab, die ebenfalls Cronjobs definiert. Das Format dieser Datei unterscheidet sich etwas von dem der Usercrontabs - siehe weiter unten... &lt;br /&gt;
&lt;br /&gt;
'''cron.d Verzeichnis'''&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis /etc kann ein Verzeichnis cron.d existieren, das Dateien im selben Format wie /etc/crontab enthalten darf. Auch diese Dateien werden von cron überwacht und darin enthaltene Befehle werden ausgeführt. &lt;br /&gt;
'''cron.{hourly,daily,weekly,monthly} Verzeichnisse'''&lt;br /&gt;
Ebenfalls im /etc/verzeichnis können Verzeichnisse der Namen cron.hourly, cron.daily, cron.weekly und cron.monthly existieren. Diese Verzeichnisse enthalten nicht crontabs, sondern Shellscripts, die entsprechend stündlich, täglich, wöchentlich oder monatlich ausgeführt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Aufbau einer Crontab Datei=&lt;br /&gt;
&lt;br /&gt;
Die auszuführenden Befehle werden in einer benutzereigenen Tabelle gespeichert, der sogenannten ''crontab''. Jeder Benutzer kann eine crontab erstellen. &lt;br /&gt;
Crontab-Einträge sind entweder Definitionen von Shellvariablen oder zeitgesteuerte Cron-Befehle. Leere Zeilen oder Zeilen, die mit einem # beginnen werden ignoriert.&lt;br /&gt;
&lt;br /&gt;
Normalerweise schickt cron alle Ausgaben von ausgeführten Kommandos per Mail an den User, der das Cron-Kommando ausführen liess. Die Variable MAILTO kann diese Eigenschaft verändern. Wenn sie den Namen eines Users enthält, so werden ihm und nicht dem ursprünglichen Cron-User die Mail geschickt. Ist die Variable MAILTO definiert, aber leer, so wird gar keine Mail verschickt. &lt;br /&gt;
&lt;br /&gt;
Diese zeitgesteuerten Cron-Befehle bestehen aus sechs Spalten; die ersten fünf dienen der Zeitangabe (Minute, Stunde, Tag, Monat, Wochentag), alle weiteren Zeichen bis zum Zeilenumbruch werden als der auszuführende Befehl aufgefasst. Die einzelnen Spalten werden durch Leerzeichen oder Tabulatoren getrennt.&lt;br /&gt;
 &lt;br /&gt;
Beispiel einer ''Crontab'':&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #M    S   T M W    Befehl&lt;br /&gt;
 5     *   * * *    /usr/bin/message.sh&lt;br /&gt;
 */5   *   * * *    /usr/bin/message.sh&lt;br /&gt;
 59    23  * * 0    cp /var/log/messages /log/backup/messages&lt;br /&gt;
 0     0   * * *    cp /var/log/syslog /log/backup/syslog&lt;br /&gt;
 20,30 1   * * 1-5  /usr/bin/work.sh&lt;br /&gt;
&lt;br /&gt;
Der erste Befehl (beginnend mit &amp;lt;tt&amp;gt;5…&amp;lt;/tt&amp;gt;) wird fünf Minuten nach jeder vollen Stunde, der zweite alle 5 Minuten (die Schrittweite wird durch &amp;lt;tt&amp;gt;*/Schrittweite&amp;lt;/tt&amp;gt; angegeben), der dritte einmal pro Woche sonntags um 23:59 Uhr, der vierte täglich um 00:00 Uhr und der fünfte montags bis freitags jeweils um 01:20 und 01:30 ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Die Struktur der Befehlszeile ist wie folgt zu verstehen:&lt;br /&gt;
&lt;br /&gt;
 * * * * * auszuführender Befehl&lt;br /&gt;
 ┬ ┬ ┬ ┬ ┬&lt;br /&gt;
 │ │ │ │ │&lt;br /&gt;
 │ │ │ │ └──── Wochentag (0-7 oder Sun, Mon, Tue,etc) (Sonntag =0 oder =7)&lt;br /&gt;
 │ │ │ └────── Monat (1-12 oder Jan, Feb, etc)&lt;br /&gt;
 │ │ └──────── Tag (1-31)&lt;br /&gt;
 │ └────────── Stunde (0-23)&lt;br /&gt;
 └──────────── Minute (0-59)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Feld für eine Zeitangab kann dabei mehrere Angaben enthalten:&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
&lt;br /&gt;
|Syntax&lt;br /&gt;
|Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|Voller Bereich&lt;br /&gt;
|*&lt;br /&gt;
|Bei Minute: 0,1,2,3,...,59&lt;br /&gt;
|-&lt;br /&gt;
|Ausgweählter Bereich&lt;br /&gt;
|1-5&lt;br /&gt;
|entspricht 1,2,3,4,5&lt;br /&gt;
|-&lt;br /&gt;
|Liste&lt;br /&gt;
|1,5,10&lt;br /&gt;
|nur an den angegebenen Werten&lt;br /&gt;
|-&lt;br /&gt;
|Kombination&lt;br /&gt;
|2,5,30-40&lt;br /&gt;
|Kombination aus Liste und Bereich&lt;br /&gt;
|-&lt;br /&gt;
|Schritte&lt;br /&gt;
|*/5&lt;br /&gt;
|bei Minute: alle 5 Minuten&lt;br /&gt;
|-&lt;br /&gt;
|Kombination&lt;br /&gt;
|2-47/5&lt;br /&gt;
|alle 5 Minten im Bereich 2-47 (2,7,12,...)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Werden in einem Feld Namen benutzt, so sind Bereiche und Listen nicht erlaubt.&lt;br /&gt;
&lt;br /&gt;
Statt der ersten 5 Felder zur Zeitangabe können auch folgende speziellen Angaben erfolgen:&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Angabe&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|@reboot&lt;br /&gt;
|Läuft einma bei einem Reboot&lt;br /&gt;
|-&lt;br /&gt;
|@yearly        &lt;br /&gt;
|Läuft einmal im Jahr (0 0 1 1 *)&lt;br /&gt;
|-&lt;br /&gt;
|@annually      &lt;br /&gt;
|Läuft einmal im Jahr (0 0 1 1 *)&lt;br /&gt;
|-&lt;br /&gt;
|@monthly&lt;br /&gt;
|Läuft einmal im Monat (0 0 1 * *)&lt;br /&gt;
|-&lt;br /&gt;
|@weekly&lt;br /&gt;
|Läuft einmal wöchentlich (0 0 * * 0)&lt;br /&gt;
|-&lt;br /&gt;
|@daily&lt;br /&gt;
|Läuft einmal täglich (0 0 * * *)&lt;br /&gt;
|-&lt;br /&gt;
|@midnight&lt;br /&gt;
|Läuft einmal täglich (0 0 * * *)&lt;br /&gt;
|-&lt;br /&gt;
|@hourly&lt;br /&gt;
|Läuft einmal stündlich (* * * *)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten von User Crontabs=&lt;br /&gt;
'''Ansehen der aktuellen Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -l&lt;br /&gt;
'''Erstellen / Bearbeiten der Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -e&lt;br /&gt;
'''Löschen der Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -r&lt;br /&gt;
'''Inhalt von vorhandener Datei als Crontab setzen'''&lt;br /&gt;
 root@nazgul:~# crontab dateiname&lt;br /&gt;
'''Ansehen der Crontab eines anderen Benutzers (nur root)'''&lt;br /&gt;
 root@nazgul:~# crontab -lu tina&lt;br /&gt;
&lt;br /&gt;
=System Crontab(s)=&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu User Crontabs gibt es ein zusätzliches Feld das angibt, unter welchem Benutzer der aufzurufende Befehl ausgeführt werden soll.&lt;br /&gt;
 M S            T M WT  User Befehl&lt;br /&gt;
 2 0,5,10,15,20 * * 1-6 root if [ -x /usr/sbin/pg_maintenance ]; then /usr/sbin/pg_maintenance --analyze &amp;gt;/dev/null; fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neben der Datei /etc/crontab und dem Verzeichnis /etc/cron.d existieren in vielen Linux-Distributionen (RedHat, Debian, SuSE,...) auch noch die Verzeichnisse &lt;br /&gt;
 /etc/cron.hourly&lt;br /&gt;
 /etc/cron.daily&lt;br /&gt;
 /etc/cron.weekly&lt;br /&gt;
 /etc/cron.monthly&lt;br /&gt;
&lt;br /&gt;
Diese Verzeichnisse enthalten keine Crontabs, sondern Programme, die entsprechend stündlich, täglich, wöchentlich oder monatlich einmal ausgeführt werden sollen. In der Regel handelt es sich bei diesen Programmen um Shellscripts, die dann wiederum bestimmte Programme aufrufen. &lt;br /&gt;
Die Ausführung dieser Programme steuert cron mit Hilfe der Datei '''/etc/crontab''' .&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis '''/etc/cron.d''' befinden sich Systemweit gültige Crontabs.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Cron&amp;diff=639</id>
		<title>Cron</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Cron&amp;diff=639"/>
		<updated>2009-07-31T10:56:00Z</updated>

		<summary type="html">&lt;p&gt;192.168.254.27: /* Aufbau einer Crontab Datei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der '''cron'''-Daemon ist eine Jobsteuerung von Unix bzw. unixartigen Betriebssystemen wie Linux, BSD oder Mac OS X, die wiederkehrende Aufgaben ''(cronjobs)'' automatisch zu einer bestimmten Zeit ausführen kann.&lt;br /&gt;
&lt;br /&gt;
Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien.&lt;br /&gt;
&lt;br /&gt;
Der Cron-Daemon überwacht dazu verschiedene Dateien und Verzeichnisse, in denen Anweisungen liegen, die in regelmäßigen Abständen ausgeführt werden sollen. Diese Anweisungen werden Cron-Tabellen oder eben crontabs genannt. &lt;br /&gt;
Cron läd beim Start all die Dateien und Verzeichnisse, die er überwacht in den Arbeitsspeicher und überprüft jede Minute einmal, ob darin Jobs enthalten sind, die in der aktuellen Minute ausgeführt werden sollen. Wenn ja, so führt er sie aus. Außerdem überprüft cron jede Minute, ob sich an den Dateien oder Verzeichnissen etwas geändert hat und - falls ja - übernimmt er diese Änderungen im Speicher. &lt;br /&gt;
Es gibt also mehrere Möglichkeiten, dem Cron-Daemon einen Job zur Ausführung zu übergeben. Die einzelnen Möglichkeiten sind: &lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere Möglichkeiten, dem Cron-Daemon einen Job zur Ausführung zu übergeben. Die einzelnen Möglichkeiten sind: &lt;br /&gt;
&lt;br /&gt;
'''User-Crontabs'''&lt;br /&gt;
&lt;br /&gt;
Jeder User des Systems kann eine eigene Crontab (also eine Datei mit Anweisungen für Cron) erstellen und bearbeiten. Die Jobs, die darin aufgeführt sind werden von Cron unter der Userkennung des Users ausgeführt, um dessen Crontab-Datei es sich handelt. Die User-Crontabs werden nicht direkt mit einem Editor verändert, sondern mit dem Befehl crontab(1). &lt;br /&gt;
&lt;br /&gt;
'''Systemweite Crontab-Datei'''&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis /etc existiert eine Datei crontab, die ebenfalls Cronjobs definiert. Das Format dieser Datei unterscheidet sich etwas von dem der Usercrontabs - siehe weiter unten... &lt;br /&gt;
&lt;br /&gt;
'''cron.d Verzeichnis'''&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis /etc kann ein Verzeichnis cron.d existieren, das Dateien im selben Format wie /etc/crontab enthalten darf. Auch diese Dateien werden von cron überwacht und darin enthaltene Befehle werden ausgeführt. &lt;br /&gt;
'''cron.{hourly,daily,weekly,monthly} Verzeichnisse'''&lt;br /&gt;
Ebenfalls im /etc/verzeichnis können Verzeichnisse der Namen cron.hourly, cron.daily, cron.weekly und cron.monthly existieren. Diese Verzeichnisse enthalten nicht crontabs, sondern Shellscripts, die entsprechend stündlich, täglich, wöchentlich oder monatlich ausgeführt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Aufbau einer Crontab Datei=&lt;br /&gt;
&lt;br /&gt;
Die auszuführenden Befehle werden in einer benutzereigenen Tabelle gespeichert, der sogenannten ''crontab''. Jeder Benutzer kann eine crontab erstellen. &lt;br /&gt;
Crontab-Einträge sind entweder Definitionen von Shellvariablen oder zeitgesteuerte Cron-Befehle. Leere Zeilen oder Zeilen, die mit einem # beginnen werden ignoriert.&lt;br /&gt;
&lt;br /&gt;
Normalerweise schickt cron alle Ausgaben von ausgeführten Kommandos per Mail an den User, der das Cron-Kommando ausführen liess. Die Variable MAILTO kann diese Eigenschaft verändern. Wenn sie den Namen eines Users enthält, so werden ihm und nicht dem ursprünglichen Cron-User die Mail geschickt. Ist die Variable MAILTO definiert, aber leer, so wird gar keine Mail verschickt. &lt;br /&gt;
&lt;br /&gt;
Diese zeitgesteuerten Cron-Befehle bestehen aus sechs Spalten; die ersten fünf dienen der Zeitangabe (Minute, Stunde, Tag, Monat, Wochentag), alle weiteren Zeichen bis zum Zeilenumbruch werden als der auszuführende Befehl aufgefasst. Die einzelnen Spalten werden durch Leerzeichen oder Tabulatoren getrennt.&lt;br /&gt;
 &lt;br /&gt;
Beispiel einer ''Crontab'':&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #M    S   T M W    Befehl&lt;br /&gt;
 5     *   * * *    /usr/bin/message.sh&lt;br /&gt;
 */5   *   * * *    /usr/bin/message.sh&lt;br /&gt;
 59    23  * * 0    cp /var/log/messages /log/backup/messages&lt;br /&gt;
 0     0   * * *    cp /var/log/syslog /log/backup/syslog&lt;br /&gt;
 20,30 1   * * 1-5  /usr/bin/work.sh&lt;br /&gt;
&lt;br /&gt;
Der erste Befehl (beginnend mit &amp;lt;tt&amp;gt;5…&amp;lt;/tt&amp;gt;) wird fünf Minuten nach jeder vollen Stunde, der zweite alle 5 Minuten (die Schrittweite wird durch &amp;lt;tt&amp;gt;*/Schrittweite&amp;lt;/tt&amp;gt; angegeben), der dritte einmal pro Woche sonntags um 23:59 Uhr, der vierte täglich um 00:00 Uhr und der fünfte montags bis freitags jeweils um 01:20 und 01:30 ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Die Struktur der Befehlszeile ist wie folgt zu verstehen:&lt;br /&gt;
&lt;br /&gt;
 * * * * * auszuführender Befehl&lt;br /&gt;
 ┬ ┬ ┬ ┬ ┬&lt;br /&gt;
 │ │ │ │ │&lt;br /&gt;
 │ │ │ │ └──── Wochentag (0-7 oder Sun, Mon, Tue,etc) (Sonntag =0 oder =7)&lt;br /&gt;
 │ │ │ └────── Monat (1-12 oder Jan, Feb, etc)&lt;br /&gt;
 │ │ └──────── Tag (1-31)&lt;br /&gt;
 │ └────────── Stunde (0-23)&lt;br /&gt;
 └──────────── Minute (0-59)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Feld für eine Zeitangab kann dabei mehrere Angaben enthalten:&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=2&lt;br /&gt;
|Syntax&lt;br /&gt;
|Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|Voller Bereich&lt;br /&gt;
|*&lt;br /&gt;
|Bei Minute: 0,1,2,3,...,59&lt;br /&gt;
|-&lt;br /&gt;
|Ausgweählter Bereich&lt;br /&gt;
|1-5&lt;br /&gt;
|entspricht 1,2,3,4,5&lt;br /&gt;
|-&lt;br /&gt;
|Liste&lt;br /&gt;
|1,5,10&lt;br /&gt;
|nur an den angegebenen Werten&lt;br /&gt;
|-&lt;br /&gt;
|Kombination&lt;br /&gt;
|2,5,30-40&lt;br /&gt;
|Kombination aus Liste und Bereich&lt;br /&gt;
|-&lt;br /&gt;
|Schritte&lt;br /&gt;
|*/5&lt;br /&gt;
|bei Minute: alle 5 Minuten&lt;br /&gt;
|-&lt;br /&gt;
|Kombination&lt;br /&gt;
|2-47/5&lt;br /&gt;
|alle 5 Minten im Bereich 2-47 (2,7,12,...)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Werden in einem Feld Namen benutzt, so sind Bereiche und Listen nicht erlaubt.&lt;br /&gt;
&lt;br /&gt;
Statt der ersten 5 Felder zur Zeitangabe können auch folgende speziellen Angaben erfolgen:&lt;br /&gt;
{|vorder=1 cellpadding=2&lt;br /&gt;
|Angabe&lt;br /&gt;
|Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|@reboot&lt;br /&gt;
|Läuft einma bei einem Reboot&lt;br /&gt;
|-&lt;br /&gt;
|@yearly        &lt;br /&gt;
|Läuft einmal im Jahr (0 0 1 1 *)&lt;br /&gt;
|-&lt;br /&gt;
|@annually      &lt;br /&gt;
|Läuft einmal im Jahr (0 0 1 1 *)&lt;br /&gt;
|-&lt;br /&gt;
|@monthly&lt;br /&gt;
|Läuft einmal im Monat (0 0 1 * *)&lt;br /&gt;
|-&lt;br /&gt;
|@weekly&lt;br /&gt;
|Läuft einmal wöchentlich (0 0 * * 0)&lt;br /&gt;
|-&lt;br /&gt;
|@daily&lt;br /&gt;
|Läuft einmal täglich (0 0 * * *)&lt;br /&gt;
|-&lt;br /&gt;
|@midnight&lt;br /&gt;
|Läuft einmal täglich (0 0 * * *)&lt;br /&gt;
|-&lt;br /&gt;
|@hourly&lt;br /&gt;
|Läuft einmal stündlich (* * * *)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Verwalten von User Crontabs=&lt;br /&gt;
'''Ansehen der aktuellen Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -l&lt;br /&gt;
'''Erstellen / Bearbeiten der Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -e&lt;br /&gt;
'''Löschen der Crontab'''&lt;br /&gt;
 root@nazgul:~# crontab -r&lt;br /&gt;
'''Inhalt von vorhandener Datei als Crontab setzen'''&lt;br /&gt;
 root@nazgul:~# crontab dateiname&lt;br /&gt;
'''Ansehen der Crontab eines anderen Benutzers (nur root)'''&lt;br /&gt;
 root@nazgul:~# crontab -lu tina&lt;br /&gt;
&lt;br /&gt;
=System Crontab(s)=&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu User Crontabs gibt es ein zusätzliches Feld das angibt, unter welchem Benutzer der aufzurufende Befehl ausgeführt werden soll.&lt;br /&gt;
 M S            T M WT  User Befehl&lt;br /&gt;
 2 0,5,10,15,20 * * 1-6 root if [ -x /usr/sbin/pg_maintenance ]; then /usr/sbin/pg_maintenance --analyze &amp;gt;/dev/null; fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neben der Datei /etc/crontab und dem Verzeichnis /etc/cron.d existieren in vielen Linux-Distributionen (RedHat, Debian, SuSE,...) auch noch die Verzeichnisse &lt;br /&gt;
 /etc/cron.hourly&lt;br /&gt;
 /etc/cron.daily&lt;br /&gt;
 /etc/cron.weekly&lt;br /&gt;
 /etc/cron.monthly&lt;br /&gt;
&lt;br /&gt;
Diese Verzeichnisse enthalten keine Crontabs, sondern Programme, die entsprechend stündlich, täglich, wöchentlich oder monatlich einmal ausgeführt werden sollen. In der Regel handelt es sich bei diesen Programmen um Shellscripts, die dann wiederum bestimmte Programme aufrufen. &lt;br /&gt;
Die Ausführung dieser Programme steuert cron mit Hilfe der Datei '''/etc/crontab''' .&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis '''/etc/cron.d''' befinden sich Systemweit gültige Crontabs.&lt;/div&gt;</summary>
		<author><name>192.168.254.27</name></author>
	</entry>
</feed>