HowTo: Tomcat 7 Installation via mod_jk und Apache vHosts unter Debian

Tomcat Logo

Tomcat LogoDa der Apache Webserver wesentlich leistungsfähiger und flexibler als der integrierte Webserver des Tomcat ist, ist es sinnvoll diesen auch einzusetzen. Zusätzlich können wir auf die Apache Module zurückgreifen und das vHost Management verwenden. Die Lösung wird via dem Apache Modul mod_jk realisiert, welches sämtliche Webserveranforderungen über das AJP Protokoll an den Tomcat weiterleitet.

Vorbereitung

*) Apache Tomcat 7 Installation wie in diesem HowTo beschrieben

*) Apache Webserver Installation (mod_jk kann auch in bestehende Installationen integriert werden)

aptitude install apache2

Installation und Konfiguration des mod_jk Apache Moduls

Das mod_jk Apache Modul kann bequem über das Debian Repository installiert werden:

aptitude install libapache2-mod-jk

Debian installiert dabei bereits die entsprechende Beispielkonfiguration mit, welche wir für unsere Zwecke editieren. Wenn die Tomcat Installation noch bei der Standardinstallation belassen wurde, müssen nur die ersten beiden Werte angepasst werden.

vi /etc/libapache2-mod-jk/workers.properties
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.lbfactor=1

In folgendem Schritt erstellen wir die Apache Modul Konfigurationsdatei für mod_jk mit folgenden Werten:

vi /etc/apache2/conf.d/mod-jk.conf
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel error
JkShmFile /var/log/apache2/jk-runtime-status

Apache vHost (Virtual Host) erstellen

Da nun die Grundkonfiguration des mod_jk abgeschlossen ist, legen wir nun einen vHost für eine Testdomain auf unseren Apache Webserver an (zB:. vhost.domain.com) und laden via JkMount den ajp13_worker nach /:

vi /etc/apache2/sites-available/vhost.domain.com
<Virtualhost vhost.domain.com>
    JkMount /* ajp13_worker
    ServerName vhost.domain.com
    DocumentRoot /usr/local/tomcat/webapps
    ErrorLog /usr/local/tomcat/logs/error.log
    CustomLog /usr/local/tomcat/logs/access.log common
    <Directory /usr/local/tomcat/webapps>
        Options -Indexes
    </Directory>
</Virtualhost>

Nun aktivieren wir den neuen vHost und starten den Apache Webserver neu:

a2ensite vhost.domain.com
/etc/init.d/apache2 restart

Tomcat vHost (Virtual Host) konfigurieren

Da nun der Apache Webserver soweit konfiguriert ist um mit dem Tomcat über den AJP Connector zu kommunizieren, müssen wir die vHosts für den Tomcat noch entsprechend einrichten. In folgendem Beispiel wird die Domain vhost.domain.com auf das Beispiel Verzeichnis des Tomcats konfiguriert (/usr/local/tomcat/webapps/examples).

vi /usr/local/tomcat/conf/server.xml
 <Host name="vhost.domain.com" appBase="webapps"
            unpackWARs="true" autoDeploy="true">
             <Context path=""
               docBase="/usr/local/tomcat/webapps/examples"
               debug="0" reloadable="true" />
             <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

Damit die Konfiguration aktiv wird starten wir den Tomcat neu:

/etc/init.d/tomcat stop
/etc/init.d/tomcat start 

Testen der Apache mod_jk Tomcat Integration

Nun kann im via Browser auf den entsprechenden Hostnamen zugegriffen werden wo unsere Beispiele angezeigt werden sollte:

Apache Tomcat Beispiele

HowTo: Tomcat 7 Installation via mod_jk und Apache vHosts unter Debian, 5.0 out of 5 based on 6 ratings
GD Star Rating
loading...

Tags: , , , , , , , ,

Dienstag, 12. Juni 2012 Linux Author: Patrick

9 Kommentare zum Thema HowTo: Tomcat 7 Installation via mod_jk und Apache vHosts unter Debian

  • Carl sagt:

    Vielen Dank für die Anleitung. Ich werde mal versuchen, die Eins zu Eins umzusetzen. Ich bin mal gespannt, ob es bei mir klappt.

  • Jack sagt:

    Funktioniert zwar wie beschrieben, allerdings wurden bei mir alle Domains auf den Tomcat umgeleitet, auch solche die eigentlich auf PHP-Anwendungen verweisen, die vom Apache ausgeliefert werden müssen. Wie kommt das? Ich hab wie beschrieben einen Virtualhost nur für eine einzelne Domain angelegt. Alle anderen haben normale Einträge in sites-available.

  • Patrick sagt:

    Hi Jack,
    Wie sind denn die anderen VirtualHost ….. Direktiven eingetragen? Also der Wert von ….. Eventuell liegt hier der Fehler begraben?

    Gruß Patrick

  • Tomek sagt:

    Vielen Dank für die Anleitung. Funktioniert zwar wie beschrieben allerdings nur local d.h. wenn ich die Adresse von einem anderem Rechner aufrufe mit der IP am Anfang z.b. 192.168.1.100/vhost.domain.com bekomme ich nur eine 404 Fehlermeldung.

    • Patrick sagt:

      Hi Tomek,

      wie lautet denn die Fehlermeldung?
      Ist die Domain auch sauber im Apache konfiguriert und stimmt die Zuordnung in den VirtualHosts Direktiven?

      Gruß
      Patrick

      • Tomek sagt:

        HTTP Status 404 – /vhost.domain.com
        type Status report
        message /vhost.domain.com
        description The requested resource (/vhost.domain.com) is not available.

        Apache Tomcat/7.0.28

        Was meinst Du mit “Ist die Domain auch sauber im Apache konfiguriert”? Habe eigentlich nicht mehr aber auch nicht weniger gemacht als in deiner Anleitung stand :-)

  • Leave a Reply

    rssfeed google+ youtube
    Hosting-Lösungen (VPS, Dedicated Server, Webspace und Colocation) von Contabo

    Subscribe to our mailing list

    * indicates required Email Adresse *
    Blogverzeichnis - Blog Verzeichnis bloggerei.de
    getdigital.de Werbung schalten

    *=Affiliatelink