Tomcat und vhost

Studi

New Member
Hallo :)

Ich hab folgendes Vorhaben: ich möchte auf meinem Server vhost-spezifisch Tomcat-Server auf dem Port 80 laufen lassen. Über Plesk habe ich das entsprechende Plugin installiert, aber mein Lizenzkey unterstützt das leider nicht, so dass ich darüber nichts einstellen kann.

Mein Server ist ein vServer von Strato mit Ubuntu 8.04 LTS.

Letztendlich soll es möglich sein, für zwei oder mehr Domain/vhosts Webanwendungen mit JSPs und Java-Servlets laufen zu lassen, so dass quasi bei Eingabe von www.name.tld die Haupt-JSP aufgerufen wird.

Nun, für Tipps, Links etc wäre ich euch sehr dankbar :)

VG
 
Du kannst Tomcat auch manuell über ein Modul im Apache2 ansprechen.
Zusätzlich musst du noch eine Jave Runtime (JRE) installieren. Das ist kein Problem, da gibt es ein deb-Paket.

Aber wieviel RAM hat dein vServer? Java ist ziemlich Speicherhungrig. :eek:
 
Hi,

danke für die fixe Antwort :)

Tomcat rennt mit Java 6 bereits auf dem Server (mit 1GB Speicher), kann momentan aber nur per name.tld:8080 aufgerufen werden bzw. auch mit ip.tld:8080.

Nun wird dafür aber a) ein Standardverzeichnis von Tomcat verwendet und b) nicht individuell für einen vhost und nicht ohne den 8080-Port :/ habe leider keine Ahnung, wie ich den vhost so konfiguriere, dass Apache den Tomcat anspricht (eigenes Verzeichnis + Port 80)...

VG
 
Ok, dann sind die Grundlagen ja schonmal gegeben. :)
Wie immer gibt es natürlich mehrere Wege, um sowas zu realisieren.
Zum einen geht das über das Apache-Modul mod_jk.
Da der Tomcat aber auch einen eigenen HTTP-Server mitbringt, könnte man auch mod_proxy bzw mod_proxy_ajp nutzen.

Hier mal eine Kurzanleitung zu mod_jk:

1. Download und install
Code:
$ sudo apt-get install libapache2-mod-jk
2. File /etc/apache2/mods-available/jk.conf mit folgendem Inhalt erstellen
Code:
$ sudo vi /etc/apache2/mods-available/jk.conf
JkWorkersFile   /etc/apache2/workers.properties
JkLogFile       /var/log/apache2/mod_jk.log
JkShmFile       /var/log/apache2/mod_jk.shm
JkLogLevel      info
3. File /etc/apache2/workers.properties mit folgendem Inhalt erstellen
Code:
$ sudo vi /etc/apache2/workers.properties
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
4. mod_jk aktivieren
Code:
$ sudo a2enmod jk
5. VirtualHost vhost-xyz konfigurieren
Code:
$ sudo vi /etc/apache2/sites-available/vhost_xyz
<VirtualHost www.testsrv.local>
    JkMount /* worker1
    ServerName [url]www.tests.tld[/url]
    ServerAdmin [email]servermaster@test.tld[/email]
    DocumentRoot /var/www/vhost_xyz/docs
[...]
</VirtualHost>
6. Enable vhost_xyz
Code:
$ sudo a2ensite vhost_xyz
7. Reload Apache2-Config
Code:
$ sudo /etc/init.d/apache2 force-reload

Dies bitte nur als Grundgerüst verwenden. Du kannst es nach belieben anpassen. In der Onlinehilfe findest du massig Anleitungen und Beispiele.
Ich habe die Erfahrung gemacht, dass viele Tomcat-OpenSource-Projekte eigene Howto's anbieten, die auch hervorragend als Anleitung für eigene Tomcat-Implementierungen geeignet ist.

Zum Beispiel: Zimbra with Apache using mod jk - mod proxy - mod proxy ajp - Zimbra :: Wiki

Dann mal frohes Schaffen. ;)
 
Hi,

vielen Dank für die ausführliche Antwort :)

Leider funktioniert das nicht ganz so, hier die Abwandlung:
Plesk legt im www/vhosts/domain/conf die entsprechenden confs als httpd.include für die vhosts an. Dort kann man nun sagen, für welche Ordner der Tomcat angesprochen werden soll:

Code:
<IfModule mod_jk.c>
	JkMount / ajp13
	JkMount /* ajp13
</IfModule>

wobei ich mir unsicher bin, ob man nun beide Zeilen überhaupt braucht. Nun, auf jeden Fall funktioniert das ;)

Eine weitere Änderung: die server.xml des Tomcats (im conf-Verzeichnis) muss angepasst werden:

Code:
<Host name="localhost"  appBase="/Verzeichnis" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

dort muss entsprechend das /Verzeichnis zum webapp-Ordner umgeändert werden, falls man denn nicht das Standard-Verzeichnis nutzen will. Achtung: bei mir hat Tomcat nach einem ROOT-Ordner gesucht, der in diesem Verzeichnis existieren sollte.



So weit, so gut. Doch noch ist das Ziel nicht erreicht: jetzt müssen noch verschiedene vhosts auf andere Tomcat-Server zugreifen können. Über die server.xml des Tomcats können weitere Hosts definiert werden, das ist kein Problem, aber was trage ich in die vhost.conf ein, um die beiden tomcat-Server zu unterscheiden? Bisher verweise ich ja nur auf den connector :/

VG und noch mals vielen Dank :)
 
Back
Top