Aus Zwei mach Eins
Da ich gerade meinen Heimserver um diverse Entwickler Tools aufstocken möchte (Jenkins, Sonar, Nexus) musste erstmal ein Servlet-Container her: Tomcat
Port 80 ist bereits freigegeben und eigentlich nervt mich das Portgetippe (eh schon wissen: localhost:8080) beim URL Aufruf ziemlich. Wär doch toll wenn man die Anwendungen die auf dem Tomcat laufen würden auch über den normalen 80er Zugriff erreichen könnte, oder?
Naja, dann ran ans Eingemachte!
Installation Tomcat
Java
So noch nicht geschehen sollte sinnvollerweise eine Java Installation am Server vorhanden sein
# apt-get install openjdk-6-jre
Wer auf dem Server auch Programme compiliern will besorgt sich ein jdk. Für die Installatin von Java 7 verweise ich auf einen ausgezeichneten Blog Beitrag von SysadminsLife
Download und Installation
Auf der Tomcat Seite die gewünschte Version (im Falle des Tutorials die neueste 7.0) mit wget herunterladen und entpacken
# tar xvfz apache-tomcat-7.0.35.tar.gz
danach an eine passende Stelle verschieben /opt/tomcat
# mv apache-tomcat-7.0.35 /opt/tomcat
Zum Abschluss noch die Scripts ausführbar machen
# chmod +x /opt/tomcat/bin/*.sh
Tomcat User und Gruppe
# groupadd tomcat # useradd -g tomcat -d /opt/tomcat tomcat # usermod -G www-data tomcat # chown tomcat:tomcat /opt/tomcat -R
Tomcat Startup Script
Unter /etc/init.d/tomcat wird das Tomcat 7 Script von collinpeters abgespeichert (Oh ja, Github rulez! Und gist erst recht – Danke für das schöne Script!)
Natürlich muss das Script noch ausführbar gemacht werden und es soll automatisch starten
# chmod +x /etc/init.d/tomcat # update-rc.d tomcat defaults
Tomcat Server User
Tomcat will auch abgesichert sein, zumindest ein bisschen. Daher legen wir einen Benutzer für die Admin und Manager Webapps an. Unter /opts/tomcat/conf/tomcat-users.xml ist folgendes zu ergänzen
<tomcat-users> <role rolename="manager" /> <role rolename="manager-gui" /> <role rolename="admin"/> <role rolename="admin-gui" /> <user username="USER" password="PASSWORT" roles="admin,admin-gui,manager,manager-gui" /> </tomcat-users>
Bitte USER und PASSWORT durch eure Werte ersetzen.
Start und Test
Es wär alles für die Katz würden wir es nicht auch testen. Dafür starten wir das Service
# /etc/init.d/tomcat start
Nun sollte Tomcat unter http://<server-ip>:8080 erreichbar sein.
Installation mod_jk Apache connector
apt-get
Wie immer, als erstes ist das Package zu installieren:
# apt-get install libapache2-mod-jk
Dieses Apache Modul dient als Brücke zwischen dem Webserver und Tomcat
mod_jk Konfiguration
Mit ein paar Zeilen unter /etc/apache2/conf.d/jk.conf wird mod_jk konfiguriert
<ifmodule mod_jk.c> JkWorkersFile /etc/apache2/workers.properties JkLogFile /var/log/apache2/mod_jk.log JkLogLevel error </ifmodule>
mod_jk Worker
Apache benötigt nun noch eine Konfiguration in der festgehalten wird wie er einen Request auf Tomcat umleitet
Unter /etc/apache2/workers.properties legen wir daher folgende Konfiguratino ab
workers.tomcat_home=/opt/tomcat workers.java_home=/usr/lib/jvm/java-6-openjdk ps=/ worker.list=default worker.default.port=8009 worker.default.host=localhost worker.default.type=ajp13 worker.default.lbfactor=1
sites-available
Nun muss Apache nur noch erfahren welche Requests er an Tomcat weiterleiten soll. Dazu fügen wir in /etc/apache2/sites-available/default JkMount Zuordnungen ein. Im Falle der Tomcat Manager Applikation wären das folgende Zeilen 8 und 9
<VirtualHost *> ServerAdmin root@localhost ServerAlias homeserver DocumentRoot /var/www/ # weitere Konfiguration JkMount /manager default JkMount /manager/* default </VirtualHost>
Test
Nun muss Apache natürlich neu gestartet werden:
# /etc/init.d/tomcat restart
Das wars, nun sollte unter http://<server-ip>/manager die erste Weiterleitung auf den Tomcat sichtbar sein!
Viel Spaß damit!
Schreibe einen Kommentar