Tomcat und Apache-Server verbinden

JSP

Übersicht

Tomcat JSP-Server 3.1

Tomcat JSP-Server 3.2 final

Tomcat JSP-Server 4.0 pre-alpa und M1

Tomcat 4.0 Milestone 2

Tomcat 4.0 Milestone 3

Tomcat und Apache-Server

Links

Diese Seite beschreibt die Verbindung des Tomcat-JSP-Servers 3.x mit dem Apache-Server.

Der Tomcat-Server kann sowohl als stand-alone-Server arbeiten als auch zusammen mit einem Apache-Web-Server. Der Apache-Server leitet in diesem Fall Anfragen für .jsp-Dokumente an den Tomcat-Server weiter.

Hinweis: Diese Beschreibung bezieht sich ausschließlich auf die 3.x-Versionen, für die 4.0-Versionen existiert zur Zeit noch kein entsprechendes Modul.

Voraussetzungen

Ein möglichst aktueller Apache-Server, der zum Ausführen von Modulen, welche als Shared Libraries compiliert wurden, vorbereitet ist. Die aktuellen Apache-Versionen können von der Apache-Seite bezogen werden.
DSO-Support

Die Kommunikation zwischen Tomcat- und Apache-Server übernimmt ein Modul namens mod_jserv.so. Es handelt sich dabei um ein als Shared-Library compiliertes Modul, weshalb ein entsprechend eingerichteter Apache-Server notwendig ist (DSO-Support).

Compilieren

JServ Modul compilieren

Die Source-Dateien des JServ-Moduls sind in der Source-Distribution des Tomcat-Servers enthalten. Sie befinden sich im Verzeichnis

<tomcat-base>/src/native/apache/jserv

Zum Compilieren wird das Tool apxs aus der Apache-Distribution verwendet. Es muß zunächst in das JServ-Source-Verzeichnis gewechselt werden. Danach kann das Modul mit folgendem Aufruf übersetzt werden:

<apache-base>/bin/apxs -c mod_jserv.c jserv*.c

Installation

JServ Modul installieren

Das JServ-Modul muß in das vom Apache-Server für Module vorgesehene Verzeichnis kopiert werden. Dieses Verzeichnis wird auch in der zugehörigen Konfigurationsdatei tomcat.conf referenziert.

Für die aktuellen Versionen von Apache- und Tomcat-Server ergibt sich damit folgender Kopierbefehl:

cp <jakarta-tomcat-base>/src/native/apache/jserv/mod_jserv.so <apache-base>/libexec/

Die hier angegebenen Verzeichnisse können abhängig von den verwendeten Server-Versionen variieren.

Konfiguration

Bevor die notwendigen Änderungen an den Konfigurationsdateien des Apache-Servers durchgeführt werden, muß dieser angehalten werden.

Das Tool apachectl dient dem Starten und Beenden des Apache-Servers.

Es wird beim Compilieren des Servers im Verzeichnis <apache-base>/bin/ abgelegt.

Apache Server anhalten apachectl stop
In der Konfigurationsdatei httpd.conf muß ein Include-Statement eingefügt werden, das die JServ-Konfiguration einbezieht.
JServ Konfiguration In die Apache-Konfigurationsdatei httpd.conf muß folgende Zeile eingefügt werden:
Include <tomcat-base>/conf/tomcat.conf
Mit der geänderten Konfigurationsdatei kann der Apache-Server neu gestartet werden:
Apache Server neu starten apachectl start
Da der Apache-Server JSP-Dokumente nicht selbst verarbeitet, sondern lediglich an den Tomcat-Server weiterleitet, muß dieser ebenfalls gestartet werden. Die Reihenfolge ist dabei unwichtig, bei einer ankommenden Anfrage müssen jedoch beide Server laufen.
Tomcat Server starten <tomcat-base>/bin/startup.sh

Testen

JSP-Seiten können nun über den Apache-Server aufgerufen werden. Vom Tomcat-Server werden diese an den Tomcat-Server weitergeleitet. Die JSP-Beispiele des Tomcat-Servers werden durch die eingefügte Include-Datei bereits in den Adressbereich des Apache gespiegelt.

Die Beispiele des Tomcat-Servers sollten deshalb jetzt über die Portnummer des Apache abrufbar sein:

Testaufruf einer JSP Seite über den Apache Server Über einen Browser kann die Funktion der Verbindung getestet werden, indem Beispielseiten des Tomcat-Servers ausgeführt werden, dabei jedoch die Portnummer des Apache-Servers verwendet wird, z.B.:
http://localhost:80/examples/jsp/snp/snoop.jsp
oder
http://localhost/examples/jsp/snp/snoop.jsp
Es sollte dann die Ausgabe des Snoop-JSP-Dokuments zu sehen sein, das einige Informationen über die aktuelle Verbindung zum Server listet.

Ronald Pfeiffer
Last modified: Mon Oct 30 00:17:13 CET 2000