Home / Windows / Tomcat 6 mit MOD_JK (Apache Tomcat Connector) unter Windows in IIS Integrieren
Tomcat Logo

Tomcat 6 mit MOD_JK (Apache Tomcat Connector) unter Windows in IIS Integrieren

Um den Tomcat Webserver unter Windows in den IIS zu integrieren, bedarf es einiger manueller Konfigurationsarbeit, welche ich in diesem HowTo genauer beschreiben möchte

Damit Microsofts IIS (Internet Information Services) mit dem Tomcat spricht und den Inhalt der Tomcat Instanz ausliefern kann,  gibt es das „Apache Tomcat Connector“ Plugin (Beim Apache Webserver auch als mod_JK bezeichnet). Das Plugin implementiert dem IIS das notwendige AJP (Apache JServ Protocol).

Ich persönlich bin eigentlich eher abgeneigt gegen Windows bzw. Windows Web Servern, da ich in der Linux Welt zuhause bin. Wenn es dennoch sein muss und die Anforderung zur Integration des Tomcats in den IIS besteht, muss man über seinen Schatten springen und eine entsprechende Lösung implementieren. Der Guide beschränkt sich hierbei auf den IIS6 unter Windows Server 2003

Voraussetzungen:

  • Eine installierte Tomcat Instanz: egal ob auf dem selben Server und ob Windows oder Linux
  • Der AJP 1.3 Connector muss in der server.xml des Tomcats aktiviert sein (StandardPort ist 8009)
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
  • Der AJP 1.3 Connector Port (8009) muss von dem entsprechenden Windows Server erreichbar sein

Download der IIS Erweiterung:

Der „Apache Tomcat Connector“ kann direkt von der Homepage der Apache Software Foundation heruntergeladen werden. Ich verwende hier die aktuelle stable Version „jk-1.2.30“ für 32bit. Die benötigte Datei trägt den Namen isapi_redirect-1.2.30.dll. Direktlink. Bei einem 64bit System ist unbedingt die 64bit Version zu empfehlen, da sonst der ISAPI Filter nicht geladen wird.

Die Datei kann natürlich in ein beliebiges Verzeichnis gelegt werden. Ich habe aber gerne alle Komponenten beisammen und lege sie daher in mein tomcat/bin Verzeichnis: (D:\apache-tomcat-6.0.26\bin)

Registry Keys und Konfigurationsfiles erstellen

Unter Windows ist es leider notwendig bestimmte Registry Keys und Konfigurationsdateien manuell zu erstellen und anzupassen. Für Schreibfaule habe ich ein Paket mit den Registry Keys und den Configfiles zusammengestellt welches ihr hier downloaden könnt. Ihr müsst diese dann lediglich noch für eure Bedürfnisse anpassen. Wer die Keys manuell erstellen will, der kann hier weiterlesen:

Die Registry mit „Start“ -> „Run“ -> „regedit“ starten.

Folgender Key muss nun angelegt werden: „HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0“

In dem Key „1.0“ sind dann folgende „String Values“ zu setzen: („Rechtsklick“ -> „New“ -> „String Value“)

extension_uri: /jakarta/isapi_redirect-1.2.30.dll
log_file: Pfad wohin das Logfile geschrieben werden soll (D:\apache-tomcat-6.0.26\logs\isapi.log)
log_level: Detailgenauigkeit des Logfiles debug, info, war, error, trace (ich empfehle info)
worker_file: Pfad zur Datei workers.properties (D:\apache-tomcat-6.0.26\conf\workers.properties)
worker_mount_file: Pfad zur Datei uriworkermap.properties (D:\apache-tomcat-6.0.26\conf\uriworkermap.properties)

Die Registry sollte bei euch nun ähnlich wie hier aussehen:

Nachdem die Registry Einträge gesetzt sind und diese auf die entsprechenden Configfiles verweisen, müssen wir diese natürlich noch erstellen und ebenfalls mit einigen Werten befüllen. Die beiden Configfiles liegen bei mir im /tomcat/conf Verzeichnis (D:\apache-tomcat-6.0.26\conf)

workers.properties (Die Klammerbereiche dienen nur der Beschreibung und sind wegzulassen):
worker.list=worker1             (Name des workers)
worker.worker1.host=localhost   (Host oder IP Adresse des Tomcat Servers)
worker.worker1.port=8009        (Der Port des AJP13 Protokoll)
worker.worker1.type=ajp13       (Definition des AJP13 Protokolls)

Eine Detailierte Beschreibung mit allen Optionen zur workers.properties gibt es im Apache Tomcat Reference Guide

uriworkermap.properties Beispiele (Die Klammerbereiche dienen nur der Beschreibung und sind wegzulassen):
/tomcatapp1=worker1   (Mappt URI tomcatapp1 auf worker1)
/tomcatapp1/*=worker1 (Mappt alles unter tomcatapp1 liegende auf worker1)
*.jsp=worker1         (Mappt alle Dateien mit der Endung .jsp auf worker1)

Eine Detailierte Beschreibung mit allen Optionen zur uriworkermap.properties gibt es im Apache Tomcat Reference Guide

Konfiguration des IIS

Für die Tomcat Integration kann entweder eine neue Website erstellt oder eine vorhandene Website erweitert werden. Das ISAPI Modul muss für die entsprechende Website geladen werden:

Mit einem Rechtsklick auf die Website und „Properties“ findet ihr den Tab „ISAPI Filters“. Hier kann mit „Add“ ein neuer Filter hinzufgefügt werden. Der Filtername sollte dabei selbsterklärend gewählt werden (zB: tomcat). Mit Browse könnt ihr dann die zuvor downgeloadete isapi_redirect-1.2.30.dll (D:\apache-tomcat-6.0.26\bin) auswählen und hinzufügen.

Nun muss in der vorbereiteten Website ein neues Virtual Directory erstellt werden:
Rechtsklick auf die Website und dann auf „New“ -> „Virtual Directory“ klicken

Es wird nun ein Wizard gestartet der einige Informationen von uns benötigt:

Fenster1 Virtual Directory Alias: Hier muss zwingend der Alias jakarta verwendet werden
Fenster2 Web Site Content Directory:
Der physische Pfad wo die zuvor downgeloadete isapi_redirect-1.2.30.dll liegt (bei mir in D:\apache-tomcat-6.0.26\bin)
Fenster3 Virtual Directory Access Permissions:
Die Rechte für „Read“ und „Execute“ müssen gesetzt werden.

Damit das ISAPI Modul auch zugelassen wird muss es noch zur Liste der Web Service Extensions hinzugefügt und erlaubt werden:
Rechtsklick auf „Web Service Extensions“ und dann auf „Add a new Web service extension…“ klicken

Nun muss wieder die entsprechende DLL (D:\apache-tomcat-6.0.26\bin\isapi_redirect-1.2.30.dll) ausgewählt werden und am Besten der selbe „Extension name“ wie zuvor verwendet werden (tomcat). Dabei ist darauf zu achten, dass die Checkbox „Set extension status to Allowed“ angehakt ist.

Nachdem die Konfiguration Abgeschlossen ist, muss der IIS über die Dienste (Services) neu gestartet werden, und eure Applikation kann aufgerufen werden.

[sam id=’2′ codes=’true‘]

Troubleshooting

Falls Ihr nach der Installation Probleme habt, oder das Modul noch nicht funktioniert solltet ihr als erstes im IIS nachehen ob der ISAPI Filter erfolgreicht geladen wurde. Das erkennt ihr an dem grünen Pfeil nach oben (siehe Screenshot):

Wenn der Pfeil rot ist und nach unten zeigt, dann gab es ein Problem beim Laden der DLL. Hier kann im Windows „Event Viewer“ im Bereich „Application“ nach der Source „W3SVC-WP“ gesucht werden. Dort findet Ihr eine Detailierte Beschreibung was das Problem ist.

Wenn der Pfeil grün ist, wurde zumindest der ISAPI Filter richtig geladen und Ihr habt ein Problem in der Konfiguration des Filters. Jetzt kommt die LOG Datei zum Einsatz welche in der Registry definiert wurde. (D:\apache-tomcat-6.0.26\logs\isapi.log) Hier sollten zumindest einige Einträge erscheinen, welche ein Problem vermuten lassen. Dazu kann auch noch der Log-Level auf „debug“ gestellt werden, um wirklich alles mitzuloggen.

4/5 - (10 votes)

Auch cool

Windows 10

Performance-Unterschiede im Vergleich: Welches Betriebssystem eignet sich besser für ressourcenintensive Aufgaben

In der heutigen digitalen Landschaft, in der ressourcenintensive Aufgaben eine zentrale Rolle spielen, stellt sich …