Tomcat hinter Apache2.


Konfiguration eines Apache2 mit mod_jk. In diesem Tutorial beschreibe ich, wie man Tomcat hinter einem Apache Webserver betreiben kann. Darüber kann man z.B. Java Webanwendungen direkt an den Webserver anbinden. Oder Load Balancing realisieren. Oder sich einfach nur die Eingabe von dem Port sparen. Dies hat nicht nur den Vorteil der kürzeren Schreibweise, sondern gibt die Möglichkeit, per AJAX Calls von der Website Funktionalitäten von Java Webanwendungen aufrufen zu können.

Um das ganze einzurichten, benötigen wir 3, eigentlich 4 Komponenten.

  1. Linux (geht auch mit Windows, ist aber nicht Teil dieses Tutorials)
  2. Den Apache Webserver
  3. Den Tomcat Server
  4. Und mod_jk fü den Apache Webserver

Apache Webserver und mod_jk per Paketmanager installieren.
aptitude install libapache2-mod-jk apache2
Apache Tomcat aus den Paketquellen installieren
aptitude install tomcat7
Das war schon die eigentliche Installation. Durch einen Aufruf von http://localhost sollte man die Standard Debian Seite sehen, durch einen Aufruf von http://localhost:8080 die Startseite von Apache Tomcat.

Sollte hierbei ein Problem auftreten, bitte die vielen Tutorials zur Installation der beiden Programme anschauen.

Wenn Tomcat geht, am besten schonmal eine Webapplication deployen, um die weitere Funktionalität direkt testen zu können.

Erst einmal überprüfen, ob unter /etc/apache2/mod-enabled/ die Datei jk.load verlinkt ist.Wenn Nein, dann den Link erzeugen.
ln -s /etc/apache2/mods-available/jk.load /etc/apache2/mods-enabled/
Die Datei /etc/apache2/conf/tomcat erzeugen und folgenden Inhalt einfügen.

#LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
JkWorkersFile /etc/apache2/workers.properties
JkShmFile /var/lock/apache2/mod_jk.shm
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkLogStampFormat „[%a %b %d %H:%M:%S %Y] „

Die oberste auskommentierte Zeile würde das Modul laden. Dies ist jedoch nur nötig,wenn die Datei jk.load nicht verlinkt wurde

Als nächstes die Datei, die oben unter JWorkersFile steht erzeugen und folgenden Inhalt einfügen.

worker.list=tom
worker.tom.type=ajp13
worker.tom.host=localhost
worker.tom.port=8009

In der ersten Zeile bekommt der Worker einen Namen, in diesem Fall „tom“. Dieser Name ist jedoch frei wählbar. Wird hier ein anderer Name vergeben, muss das „.tom.“ in den folgenden Zeilen angepasst werden.

Jetzt ist der Worker konfiguriert und muss nur noch mit der jeweiligen Webapp verknüpft werden.Dazu unter /etc/apache2/sites-enabled die verlinkte Datei öffnen und relativ weit oben folgende Zeile(n) einfügen.
JKMount /NAME_DER_WEBAPP/* tom
Wurde in der workers.properties der Name verändert, muss diese Zeile ebenfalls mit diesem Namen enden.
Jetzt muss man Tomcat und den Apachen noch neu starten und dann klappt der Zugriff über http://localhost/NAME_DER_WEBAPP .
Falls es nicht klappt, in der Tomcat Konfiguration server.xml überprüfen, ob folgende Zeile auskommentiert ist.

Falls sie nicht auskommentiert ist, überprüfen, ob hier derselbe Port „8009“ wie in der „workers.properties“ eingetragen ist.Falls sie auskommentiert ist, die Kommentarzeichen entfernen