1. Konfigurationssystemverwaltung (Admin-Webanwendung)
Die meisten kommerziellen J2EE-Server bieten eine leistungsstarke Verwaltungsschnittstelle und die meisten verwenden leicht verständliche Webanwendungsschnittstellen. Tomcat bietet auf seine Art auch ein ausgereiftes Management-Tool, das seinen kommerziellen Konkurrenten in nichts nachsteht. Die Admin-Webanwendung von Tomcat erschien erstmals in Version 4.1. Zu ihren Funktionen gehörte damals die Verwaltung von Kontext, Datenquelle, Benutzer und Gruppe usw. Natürlich können Sie auch verschiedene Datenbankverwaltungen wie Initialisierungsparameter, Benutzer, Gruppe, Rolle usw. verwalten. In nachfolgenden Versionen werden diese Funktionen stark erweitert, die vorhandenen Funktionen sind jedoch bereits sehr nützlich. Die Admin-Webanwendung ist in der automatischen Bereitstellungsdatei definiert: CATALINA_BASE/webapps/admin.xml. (Anmerkung des Übersetzers: CATALINA_BASE ist das Serververzeichnis unter dem Tomcat-Installationsverzeichnis.)
Sie müssen diese Datei bearbeiten, um sicherzustellen, dass der docBase-Parameter im Kontext ein absoluter Pfad ist. Mit anderen Worten: Der Pfad von CATALINA
_BASE/webapps/admin.xml ist ein absoluter Pfad. Als weitere Option können Sie diese automatische Bereitstellungsdatei auch löschen und einen Admin-Webanwendungskontext in der Datei server.xml erstellen. Der Effekt ist derselbe. Sie können die Admin-Webanwendung nicht verwalten. Mit anderen Worten: Sie können möglicherweise nichts anderes tun, als CATALINA_BASE/webapps/admin.xml zu löschen.
Wenn Sie UserDatabaseRealm (Standard) verwenden, müssen Sie einen Benutzer und eine Rolle zur Datei CATALINA_BASE/conf/tomcat-users.xml hinzufügen. Sie bearbeiten diese Datei und fügen der Datei wie folgt eine Rolle mit dem Namen „admin“ hinzu:
<role name="admin"/>
Es muss außerdem ein Benutzer vorhanden sein, und die Rolle dieses Benutzers ist „admin“. Fügen Sie einen Benutzer wie einen vorhandenen Benutzer hinzu (ändern Sie das Passwort, um es sicherer zu machen):
<ser name="admin"
Passwort="deep_dark_secret"
Rollen="admin"/>
Nachdem Sie diese Schritte ausgeführt haben, starten Sie bitte Tomcat neu und besuchen Sie http://localhost:8080/admin . Sie sehen eine Anmeldeschnittstelle. Die Admin-Webanwendung übernimmt einen Sicherheitsmechanismus, der auf der Containerverwaltung basiert, und übernimmt das Jakarta Struts-Framework. Sobald Sie sich als Benutzer mit der Rolle „Administrator“ bei der Verwaltungsoberfläche anmelden, können Sie Tomcat über diese Verwaltungsoberfläche konfigurieren.
2. Konfigurieren Sie die Anwendungsverwaltung (Manager-Webanwendung).
Mit der Manager-Webanwendung können Sie einige einfache Webanwendungsaufgaben über eine einfachere Benutzeroberfläche als die Admin-Webanwendung ausführen. Die Manager-Webanwendung ist in einer automatischen Bereitstellungsdatei definiert:
?CATALINA_BASE/webapps/manager.xml
Sie müssen diese Datei bearbeiten, um sicherzustellen, dass der docBase-Parameter des Kontexts ein absoluter Pfad ist, d. h. der absolute Pfad von CATALINA_HOME/server/. webapps/manager . (Anmerkung des Übersetzers: CATALINA_HOME ist das Tomcat-Installationsverzeichnis)
Wenn Sie UserDatabaseRealm verwenden, müssen Sie der Datei CATALINA_BASE/conf/tomcat-users.xml eine Rolle und einen Benutzer hinzufügen. Bearbeiten Sie als Nächstes die Datei und fügen Sie der Datei eine Rolle mit dem Namen „Manager“ hinzu:
<role name="manager">
Erfordert außerdem einen Benutzer mit der Rolle „Manager“. Fügen Sie einen neuen Benutzer wie einen vorhandenen Benutzer hinzu (ändern Sie das Passwort, um es sicherer zu machen):
<user name="manager"
Passwort="deep_dark_secret"
Roles="manager"/>
Starten Sie dann Tomcat neu und besuchen Sie http://localhost/manager/list . Sie sehen eine sehr einfache Textverwaltungsoberfläche. Oder besuchen Sie http://localhost/manager/html/list und sehen Sie eine HTML-Verwaltungsschnittstelle. In jedem Fall bedeutet dies, dass Ihre Manager-Webanwendung jetzt gestartet wurde.
Mit der Manager-Anwendung können Sie neue Webanwendungen zum Testen ohne Systemadministrationsrechte installieren. Wenn wir eine neue Webanwendung unter /home/user/hello haben und diese unter /hello installieren möchten, können wir zum Testen der Anwendung dies tun und „/hello“ in das erste Dateifeld eingeben (als Pfad). Geben Sie beim Zugriff „file:/home/user/hello“ (als Konfigurations-URL) in das zweite Textfeld ein.
Mit der Manager-Anwendung können Sie außerdem eine Webanwendung stoppen, neu starten, entfernen und erneut bereitstellen. Stoppen Sie eine Anwendung, sodass nicht auf sie zugegriffen werden kann. Wenn ein Benutzer versucht, auf die gestoppte Anwendung zuzugreifen, wird ihm der Fehler 503 angezeigt: „503 – Diese Anwendung ist derzeit nicht verfügbar“.
Das Entfernen einer Webanwendung bedeutet lediglich das Löschen der Anwendung aus der laufenden Kopie von Tomcat. Wenn Sie Tomcat neu starten, wird die gelöschte Anwendung wieder angezeigt (d. h. das Entfernen bedeutet nicht, dass sie von der Festplatte gelöscht wird). 3.
Bereitstellen einer Webanwendung
Es gibt zwei Möglichkeiten, Webdienste im System bereitzustellen.
1. Kopieren Sie Ihre WAR-Datei oder Ihren Webanwendungsordner (einschließlich aller Inhalte des Webs) in das Verzeichnis $CATALINA_BASE/webapps.
2. Erstellen Sie eine XML-Fragmentdatei für Ihren Webdienst, die nur Kontextinhalte enthält, und platzieren Sie die Datei im Verzeichnis $CATALINA_BASE/webapps. Die Webanwendung selbst kann überall auf Ihrer Festplatte gespeichert werden.
Wenn Sie eine WAR-Datei haben und diese bereitstellen möchten, müssen Sie die Datei nur in das Verzeichnis CATALINA_BASE/webapps kopieren. Die Datei muss „.war“ als Erweiterung haben. Sobald Tomcat auf diese Datei wartet, entpackt es (standardmäßig) die Datei als Unterverzeichnis und benennt das Unterverzeichnis mit dem Namen der WAR-Datei.
Als Nächstes erstellt Tomcat einen Kontext im Speicher, genau wie Sie ihn in der Datei server.xml erstellt haben. Natürlich werden andere erforderliche Inhalte aus dem DefaultContext in server.xml abgerufen.
Eine andere Möglichkeit, eine Webanwendung bereitzustellen, besteht darin, eine Kontext-XML-Snippet-Datei zu schreiben und die Datei dann in das Verzeichnis CATALINA_BASE/webapps zu kopieren. Ein Kontextfragment ist keine vollständige XML-Datei, sondern lediglich ein Kontextelement und eine entsprechende Beschreibung der Anwendung.
Diese Art von Fragmentdatei ähnelt dem aus server.xml ausgeschnittenen Kontextelement, daher wird diese Art von Fragment als „Kontextfragment“ bezeichnet.
Wenn wir beispielsweise eine Anwendung namens MyWebApp.war bereitstellen möchten, die Realm als Zugriffskontrollmethode verwendet, können wir das folgende Fragment verwenden:
<!--
Kontextfragment für die Bereitstellung von MyWebApp.war
->
<Context path="/demo"
docBase="webapps/MyWebApp.war"
debug="0" privilegiert="true">
<Realm-Klassenname=
„org.apache.catalina.realm.UserDatabaseRealm“
resourcesName="UserDatabase"/>
</Context>
Benennen Sie das Fragment „MyWebApp.xml“ und kopieren Sie es in das Verzeichnis CATALINA_BASE/webapps.
Dieses Kontextfragment bietet eine bequeme Möglichkeit, Webanwendungen bereitzustellen. Sie müssen server.xml nicht bearbeiten, es sei denn, Sie möchten die Standardbereitstellungsmerkmale ändern. Bei der Installation einer neuen Webanwendung ist kein Neustart erforderlich.
4. Konfigurieren Sie virtuelle Hosts (Virtual Hosts).
Das Element „Host“ in server.xml müssen Sie nur ändern, wenn Sie einen virtuellen Host einrichten. Virtuelles Hosting ist ein Mechanismus zum Bereitstellen mehrerer Domänennamen auf einem Webserver. Für jeden Domänennamen scheint der gesamte Host exklusiv zu sein. Tatsächlich werden die meisten Websites kleiner Unternehmen mithilfe virtueller Hosts implementiert. Dies liegt hauptsächlich daran, dass der virtuelle Host eine direkte Verbindung zum Internet herstellen und entsprechende Bandbreite bereitstellen kann, um eine angemessene Zugriffsreaktionsgeschwindigkeit sicherzustellen IP.
Ein namensbasierter virtueller Host kann auf jedem Webserver eingerichtet werden, indem ein Alias der IP-Adresse auf dem Domain Name Server (DNS) erstellt und der Webserver angewiesen wird, Anfragen für verschiedene Domainnamen an das entsprechende Webverzeichnis zu verteilen. Da es in diesem Artikel hauptsächlich um Tomcat geht, werden wir die Methode zum Einrichten von DNS auf verschiedenen Betriebssystemen nicht vorstellen. Wenn Sie diesbezüglich Hilfe benötigen, lesen Sie bitte das Buch „DNS and Bind“ von Paul Albitz und Cricket Liu (O'Reilly). Zur Veranschaulichung verwende ich eine statische Hosts-Datei, da dies der einfachste Weg ist, Aliase zu testen.
Um virtuelle Hosts in Tomcat verwenden zu können, müssen Sie DNS oder Hostdaten einrichten. Zum Testen genügt es, einen IP-Alias für die lokale IP festzulegen. Als nächstes müssen Sie ein paar Zeilen zu server.xml hinzufügen, wie folgt:
<Server port="8005"
Shutdown="SHUTDOWN" debug="0">
<Dienstname="Tomcat-Standalone">
<Connector-Klassenname=
„org.apache.coyote.tomcat4.CoyoteConnector“
Port="8080"
minProcessors="5" maxProcessors="75"
enableLookups="true"
RedirectPort="8443"/>
<Connector-Klassenname=
„org.apache.coyote.tomcat4.CoyoteConnector“
port="8443" minProcessors="5"
maxProcessors="75"
AcceptCount="10" debug="0"
scheme="https" secure="true"/>
<Factory className="org.apache.coyote.
tomcat4.CoyoteServerSocketFactory"
clientAuth="false" Protocol="TLS" />
</Connector>
<Engine name="Standalone"
defaultHost="localhost" debug="0">
<!-- Dieser Host ist der Standardhost -->
<Hostname="localhost"
debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="ROOT" debug="0"/>
<Context path="/orders"
docBase="/home/ian/orders" debug="0"
reloadable="true" crossContext="true">
</Kontext>
</Host>
<!-- Dieser Host ist der erste
„Virtueller Host“: http://www.example.com/ -->
<Hostname=" www.example.com "
appBase="/home/example/webapp">
<Kontextpfad="" docBase="."/>
</Host>
</Engine>
</Service>
</Server>
Die server.xml-Datei von Tomcat enthält im Anfangszustand nur einen virtuellen Host, kann aber problemlos erweitert werden, um mehrere virtuelle Hosts zu unterstützen. Das vorherige Beispiel zeigt eine einfache Version von server.xml, in der der fett gedruckte Teil zum Hinzufügen eines virtuellen Hosts verwendet wird. Jedes Host-Element muss ein oder mehrere Kontextelemente enthalten und eines der enthaltenen Kontextelemente muss der Standardkontext sein. Der Anzeigepfad dieses Standardkontexts sollte leer sein (z. B. path="").