Beispiele für das Einrichten und Konfigurieren von Tomcat und Apache

Voraussetzung: Tomcat und gegebenenfalls Apache sind installiert.
Nachfolgende Beispiele wurden mit Apache Version 2.0.59 bzw. Apache Version 2.2.4 und Tomcat 5.5.17 getestet:

Zugang über Port 8080 (nur mit Tomcat)

Im nachfolgenden Beispiel wird die WebApplikation ajax mit unverändertem Tomcat installiert.
Standardmäßig ist der Tomcat auf Port 8080 erreichbar.

Die Datei ajax.war wird in das Tomcat-Verzeichnis webapps kopiert.

Nach Start des Tomcat ist die WebApplikation mit http://<Servername>:8080/ajax erreichbar.

Zugang ohne Angabe eines Ports (nur mit Tomcat)

Im nachfolgenden Beispiel wird die Tomcat-Installation so angepasst, dass die Angabe ":8080" entfallen kann.

Achtung:

Vorher sollten Sie mit "netstat -an" prüfen, ob Port 80 nicht schon anderweitig belegt ist (z. B. von einem zusätzlich installierten Apache).

Damit der Tomcat auf Port 80 erreichbar ist, ist in der Datei conf/server.xml des Tomcat ist die Angabe

<Connector port="8080" ...

durch

<Connector port="80" ...

zu ersetzen.

Die Datei ajax.war wird in das Tomcat-Verzeichnis webapps kopiert.

Nach Start des Tomcat ist die WebApplikation mit http://<Servername>/ajax erreichbar.

Zugang mit Apache und Tomcat

Im nachfolgenden Beispiel wird die WebApplikation ajax mit unverändertem Tomcat installiert.
Die Apache-Installation wird dagegen so angepasst, dass der Durchgriff auf den Tomcat unterstützt wird.

Hinweis:

In Verbindung zwischen Apache und Tomcat mit mod_jk finden Sie hierzu einen alternativen Lösungsansatz.

In der Datei httpd.conf des Apache sind folgende Zeilen für den Durchgriff auf den Tomcat zu ergänzen:

# Proxy Module aktivieren
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Proxy zur WebApplikation ajax ProxyPass /ajax/ http://localhost:8080/ajax/ ProxyPass /ajax http://localhost:8080/ajax/ ProxyPassReverse /ajax/ http://localhost:8080/ajax/

Die Datei ajax.war wird in das Tomcat-Verzeichnis webapps kopiert.

Nach Start von Apache und Tomcat ist die WebApplikation mit http://<Servername>/ajax erreichbar.

Zugang mit HTTPS

Wie im vorigen Beispiel wird die WebApplikation ajax mit unverändertem Tomcat installiert.
Die Apache-Installation aus diesem Beispiel wird so erweitert, dass ajax nur über HTTPS erreichbar ist.

In der Datei httpd.conf des Apache wird mit folgenden Zeilen der alleinige Zugriff über HTTPS konfiguriert. Dazu sind vor den Angaben für ajax folgende Zeilen einzufügen:

# SSL Module aktivieren und konfigurieren
LoadModule ssl_module modules/mod_ssl.so
SSLPassPhraseDialog builtin
SSLMutex default
SSLCertificateFile "<Installationsverzeichnis von Apache>/conf/<Datei mit Zertifikat>"
SSLCertificateKeyFile "<Installationsverzeichnis von Apache>/conf/<Datei mit privatem Key>"

Listen 443
<VirtualHost *:443>
SSLEngine on

# Proxy Module aktivieren
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Proxy zur WebApplikation ajax ProxyPass /ajax/ http://localhost:8080/ajax/ ProxyPass /ajax http://localhost:8080/ajax/ ProxyPassReverse /ajax/ http://localhost:8080/ajax/

Dahinter ist noch folgende Zeile anzufügen:

</VirtualHost>

Die Datei ajax.war wird in das Tomcat-Verzeichnis webapps kopiert.

Nach Start von Apache und Tomcat ist die WebApplikation mit https://<Servername>/ajax erreichbar.

Verbindung zwischen Apache und Tomcat mit mod_jk

Im nachfolgenden Beispiel wird die WebApplikation ajax mit unverändertem Tomcat installiert.
Die Apache-Installation wird dagegen so angepasst, dass der Datenaustausch zwischen Apache und Tomcat über den Apache-Modul mod_jk erfolgt.

Hinweis:

Diese Form der Installation ist häufig performanter als mit dem Apache-Modul mod_proxy, siehe Zugang mit Apache und Tomcat.

Achtung:

Es ist wichtig, die richtige Version von mod_jk zu verwenden (abhängig vom eingesetzten Apache und Tomcat). Der Modul mod_jk (und bei Windows zusätzlich die Datei isapi_redirect.dll) muss gesondert heruntergeladen werden.

In der Datei httpd.conf des Apache sind folgende Zeilen für mod_jk zu ergänzen:

LoadModule jk_module modules/<Heruntergeladener Modul mod_jk (z. B. mod_jk-apache-2.2.4.so)>
JkWorkersFile "<Installationsverzeichnis von Apache>/conf/workers.properties"
JkLogFile logs/mod_jk.log
JkLogLevel error

# Verbindung zur WebApplikation ajax
JkMount /ajax/* mainworker
JkMount /ajax mainworker

Zusätzlich ist die Datei "<Installationsverzeichnis von Apache>/conf/workers.properties" bereitzustellen:

workers.tomcat_home="<Installationsverzeichnis von Tomcat>"
workers.java_home="<Installationsverzeichnis von Java>"
worker.list=mainworker
workers.mainworker.type=ajp13
workers.mainworker.port=8009
workers.mainworker.cachesize=20

Die Verknüpfung zwischen den Dateien httpd.conf und workers.properties erfolgt über den Namen mainworker.

Die Datei ajax.war wird in das Tomcat-Verzeichnis webapps kopiert.

Nach Start von Apache und Tomcat ist die WebApplikation mit http://<Servername>/ajax erreichbar.

Komprimierte Übertragung für Log/Ajax

Eine Komprimierung der Daten bei der Übertragung kann entweder durch Anpassung des Apache oder des Tomcat erreicht werden.
Im ersten Beispiel wird die Apache-Installation so angepasst, dass die Übertragung der Daten komprimiert (gezippt) erfolgt.

Dazu sind zusätzlich zu den Angaben für Log/Ajax folgende Zeilen in der Datei httpd.conf des Apache einzufügen:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

<Location />
    # Insert Filter
    SetOutputFilter deflate
    # Netscape 4.x has some problems
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    # MSIE masquerades as netscape but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    #Don't compress images
    SetEnvIfNoCase Request_URI  \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
</Location>

Im zweiten Beispiel wird die Tomcat-Installation so angepasst, dass die Übertragung der Daten komprimiert (gezippt) erfolgt.

Dazu ist in der Datei conf/server.xml des Tomcat bei den Angaben zur Verbindung noch folgender Parameter zu ergänzen:

<Connector port="8080" compression="on" ...

Achtung:

Die zweite Variante ist nicht in Verbindung mit dem Apache-Modul mod_jk (siehe oben) möglich!

Die Datei ajax.war wird in das Tomcat-Verzeichnis webapps kopiert.

Nach Start von Apache und Tomcat ist die WebApplikation mit http://<Servername>/ajax erreichbar.

Vorgeschalteter Rechner mit Apache als HTTPS-Proxy für externe Zugriffe

Der Rechner mit der Webapplikation ajax wird wie in einem der vorhergehenden Beispiele konfiguriert.
Der Apache auf dem vorgeschalteten Rechner leitet die externen HTTPS-Zugriffe zum Rechner mit ajax weiter. Dafür wird HTTP verwendet. Interne Zugriffe erfolgen ebenfalls über HTTP.

In der Datei httpd.conf des Apache auf dem vorgeschalteten Rechner wird mit folgenden Zeilen der alleinige Zugriff über HTTPS konfiguriert. Dazu sind folgende Zeilen einzufügen:

# SSL Module aktivieren und konfigurieren
LoadModule ssl_module modules/mod_ssl.so
SSLPassPhraseDialog builtin
SSLMutex default
SSLCertificateFile "<Installationsverzeichnis von Apache>/conf/<Datei mit Zertifikat>"
SSLCertificateKeyFile "<Installationsverzeichnis von Apache>/conf/<Datei mit privatem Key>"

Listen 443
<VirtualHost *:443>
    SSLEngine on

    # Proxy Module aktivieren
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
# Proxy zur WebApplikation ajax ProxyPass /ajax/ http://<Interner Rechner mit ajax>/ajax/ ProxyPass /ajax http://<Interner Rechner mit ajax>/ajax/ ProxyPassReverse /ajax/ http://<Interner Rechner mit ajax>/ajax/ </VirtualHost>

Nach Start des vorgeschalteten Apache ist die WebApplikation extern mit https://<Vorgeschalteter Rechner>/ajax erreichbar.

Paralleler Zugang zu Log/Ajax und LogWeb

Wenn Sie im Begriff sind, von LogWeb zu LogWeb/Ajax zu migrieren, kann es sinnvoll sein, die Migration schrittweise vorzunehmen und beide Technologien für eine gewisse Zeit parallel zu betreiben. In diesem Fall ergänzen Sie einfach Ihre Apache Konfiguration um die hier beschriebenen Einträge und entfernen nach der vollständigen Migration diejenigen für LogWeb.

Die obsoleten Einträge finden Sie, wenn Sie die Konfigurationsdateien nach logwebhtml und logwebcgi durchsuchen.