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-7-oracle
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 (Nur bei Debian 6 Squeeze notwendig) Wheezy erstellt die Konfiguration bereits in der Datei /etc/apache2/mods-enabled/jk.conf:

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:

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

Patrick Schoyswohl

Systemadministrator
Hallo, mein Name ist Patrick Schoyswohl und ich bin Systemadministrator in einer Agentur für neue Medien und seit 2009 Betreiber und leidenschaftlicher Blogger von SysADMINsLife.com. Meine Leidenschaft gehört den Webservern und der Serverüberwachung auf Open-Source Basis. Falls du gefallen an meinen Artikel hast, kannst du mir gerne auf Google+, Facebook oder Twitter folgen.
Patrick Schoyswohl
Wer von euch hat #ebay gekillt „DNS failure" - 2 Wochen ago
Patrick Schoyswohl
Patrick Schoyswohl

Latest posts by Patrick Schoyswohl (see all)

Tags: , , , , , , , ,

Dienstag, 12. Juni 2012 Linux, WebServer Author: Patrick Schoyswohl

12 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 :-)

  • Johann sagt:

    Hi,

    deine Anleitung ist super, danke!

    ich habe als vhost meine Domain irgendwas.com eingetragen. Wenn ich die Domain jetzt aufrufe erscheint die Default Seite “It Works…” denke mal vom Apache.. Im Tomcat log steht auch immer noch die Meldung.. von wegen The APR based Apache Tomcat Native … sollte die nicht verschwinden?

    muss ich den Tomcat nicht auch auf Port 80 umstellen? das gibt aber auch nen Konflikt mit dem Apache ..

    weiß grade net mehr weiter.
    würde gerne die Anwendung die ich in der docbase statt examples angegeben habe sehen :)

    gruß

    • Hallo Johann,

      der Tomcat darf nicht auf dem Port 80 laufen, weil da ja dein Apache Webserver läuft.
      Dieser integriert den Tomcat über den AJP Port (8009).

      Eigentlich funktioniert die Anleitung so wie sie geschrieben ist, hast du vielleicht einen Schritt ausgelassen?
      Apache und Tomcat neu gestartet?
      Logfiles im Apache überprüft?

      Gruß
      Patrick

  • simt sagt:

    Danke für das Skript. Mit mehreren Tomcat-Instanzen auf einem System funktioniert es aber nicht richtig, ich habe es so umgebaut dass es PID-Files verwendet:

    21a22
    > CATALINA_PID=”$TOMCAT_PATH/logs/tomcat.pid”
    23c24

    28c29,30
    export CATALINA_PID
    >
    30,31c32,36
    < echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'`
    if [ -f $CATALINA_PID ]
    > then
    > cat $CATALINA_PID
    > fi
    > }

  • Leave a Reply

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

    Subscribe to our mailing list

    * indicates required Email Adresse *
    Werbung schalten

    *=Affiliatelink

    Blogverzeichnis - Blog Verzeichnis bloggerei.de