Damit mal wieder etwas Leben in die Bude kommt hier eine kurze Anleitung, wie man innerhalb von 10-15 Minuten
einen Tomcat Server in Verbindung mit Apache auf einem Ubuntu Server System (14.04) installiert und konfiguriert.
Zunächst müssen die benötigten Pakete installiert werden. Neben Apache 2 und Tomcat 7 wird zusätzlich Java benötigt.
Für den richtigen Betrieb ist ebenfalls mod-jk von Nöten, diese Modul leitet Anfragen an den Apache mit Hilfe des Protokolls AJP an Tomcat weiter.
Installation
sudo apt-get update
sudo apt-get install apache2
sudo apt-get install tomcat7
sudo apt-get install openjdk-7-jre-headless
sudo apt-get install libapache2-mod-jk
Nachdem alle Pakete installiert sind, müssen einige Dateien konfiguriert werden:
Tomcat Konfiguration
Das Arbeitsverzeichnis und den Worker Prozess für Tomcat festlegen:
nano /etc/apache2/workers.properties
workers.tomcat_home=/var/lib/tomcat7
workers.java_home=/usr/lib/jvm/java-7-openjdk-amd64
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
Dem Mod-JK Modul mitteilen wo diese Datei zu finden ist und Wo Fehler und Co gelogt werden sollen:
nano /etc/apache2/mods-enabled/jk.conf
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
Dem Tomcat Server mitteilen, dass der AJP Prozess verwendet werden soll, dazu muss folgender String aktiviert werden:
nano /etc/tomcat7/server.xml
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Apache Server konfigurieren
Zunächst erfolgt die Konfiguration für die zukünftige Seite an sich. Natürlich mit SSL.
Hierzu werden bereits Schlüsselpfade hinterlegt, welche im nächsten Schritt noch erstellt werden müssen.
Wichtig ist das Einbinden von JKMount, damit Tomcat und Apache zusammen arbeiten. FYI: Es wird der Bereich innerhalb von "VirtualHost _default_:443" angepasst.
sudo nano /etc/apache2/sites-available/default-ssl.conf
ServerAdmin
webmaster@localhost
ServerName tomcatsrv:443
DocumentRoot /var/lib/tomcat7/webapps/ROOT/
SSLEngine on
SSLCertificateFile /etc/apache2/crypt/tomcatsrv.crt
SSLCertificateKeyFile /etc/apache2/crypt/tomcatsrv.key
JKMount /ROOT* worker1
Verschlüsselung aktivieren
Damit der Server gleich eine sichere Verbindung verwendet, wird http erst gar nicht konfiguriert, sondern gleich https aktiviert.
sudo a2enmod ssl
sudo mkdir /etc/apache2/crypt
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/crypt/tomcatsrv.key -out /etc/apache2/crypt/tomcatsrv.crt
Den richtigen CN in unserem Fall "tomcatsrv" vergeben.
Am Ende sollten alle Dienste neu gestartet werden
Neustart der Dienste
sudo service apache2 restart
sudo service tomcat7 restart
Sollte es zu Fehlern bei der Konfiguration gekommen sein, werdet ihr das beim Neustarten der Dienste bemerken. Alternativ kann ein Blick ins Log nie schaden.
Sollte unverhofft alles glatt gehen, müsstet ihr unter https://tomcatserv:443 die Tomcat Startseite finden ("ROOT"). Viel Erfolg.