Vorheriges Thema: ROR: Ruby-on-Rails-AnwendungsserverNächstes Thema: Webserver-Appliances


TOMCAT, TOMCAT64: Anwendungsserver

Aktuelle Version: 3.0.4-1

Tomcat-Server

Auf einen Blick

Katalog

System

Kategorie

Anwendungsserver

Benutzer-Volumes

ja

Min. Speicher

160 MB

Betriebssystem

Linux

Einschränkungen

no

Fragen/Kommentare

Im Forum fragen

Funktionsübersicht

TOMCAT ist eine Webserver-Appliance, die auf dem Sun Java-Rechner und Apache Tomcat basiert, ein Java-Servlet und JavaServer Pages-Container, der unter der Apache-Lizenz entwickelt wurde. Die Hauptdokumentation für Tomcat finden Sie unter tomcat.apache.org. Tomcat bietet normgerechten Support für Servlets und JSPs. Tomcat kann als eigenständiger Webserver oder Anwendungsserver funktionieren.

TOMCAT verarbeitet statischen Webinhalt, setzt Webanwendungen automatisch ein und führt Servlets und JavaServer Pages von einem benutzerkonfigurierbaren Inhalts-Volume aus. Die Pfade zu den Dokumenten sind konfigurierbar, sodass das gleiche Volume mit mehreren Webservern und anderen Appliances, die Inhalt bereitstellen, gemeinsam genutzt werden kann.

TOMCAT verarbeitet HTTP/1.1- und HTTP/1.0-Protokolle für Web-Clients und AJP 1.3 für Anfragen von Frontend-Servern (Bsp.: Apache mit mod_proxy_ajp).

Wie WEBx-Server hat TOMCAT drei generische Ausgabe-Terminals, die für den Zugriff auf externe Dienste von Skripten auf dem Inhalts-Volume dienen. Das Terminal "db" wird für den Zugriff auf verschiedene Datenbanken verwendet; das Terminal "fs" wird dafür verwendet, auf freigegebenen Dateispeicher zuzugreifen (mithilfe von NFS); das Terminal "aux" dient zum Senden von E-Mail-Nachrichten an einen SMTP-Server.

Das Protokoll-Terminal sollte verwendet werden, um TOMCAT mit einem gemeinsam genutzten Dateisystem zu verbinden, in dem TOMCAT Protokolldateien speichern kann.

Die Konfiguration des Servers wird mithilfe verschiedener Eigenschaften definiert. Diese Eigenschaften sind so konzipiert, dass sie die häufigsten Verwendungen auf leicht konfigurierbare Weise abdecken. In den meisten Fällen müssen nur wenige Eigenschaften auf vom Standard abweichende Werte eingestellt werden.

Name

Aktuelle Version

Betriebssystem

Java-Rechner-Version

Apache Tomcat-Version

TOMCAT

3.0.3-1

CentOS 6.3

JDK 1.6.0.22

6.0.29

TOMCAT64

3.0.3-1

CentOS 6.3 (64 bit)

JDK 1.6.0.22

6.0.29

Ressourcen

Ressourcen für TOMCAT

Ressource

Minimum

Maximum

Standard

CPU

0.1

16

0.3

Speicher

160 MB

4 G

512 MB

Bandbreite

1 Mbit/s

2 Gbit/s

250 Mbit/s

Ressourcen für TOMCAT64

Ressource

Minimum

Maximum

Standard

CPU

0.1

16

0.3

Speicher

192 MB

64 G

512 MB

Bandbreite

1 Mbit/s

2 Gbit/s

250 Mbit/s

Hinweis:

Speicheranforderungen zum Speichern von Java-Anwendungssitzungen

Außer Speicher für Java-Anwendungen muss eine gewisse Speichermenge zum Speichern der Anwendungssitzungen zur Verfügung stehen. Jede leere Sitzung (ohne zusätzlich gespeicherte Daten) verwendet nahezu 2 Kilobyte Speicher. Dieser Speicher wird während der Sitzungsdauer verwendet (die Standardsitzungsdauer beträgt 30 Minuten). Sie können die Sitzungsdauer konfigurieren, indem Sie einen zusätzlichen Abschnitt bearbeiten oder der Konfigurationsdatei web.xml einer Anwendung hinzufügen. Wenn Sie beispielsweise den unten stehenden Code einfügen, wird die Sitzungsdauer so konfiguriert, dass sie 1 Minute beträgt:

  <session-config>
    <session-timeout>1</session-timeout>
  </session-config>

Wenn in 30 Minuten zehntausend einzelne Besucher erwartet werden, sind zusätzliche 20 MB freier Speicher erforderlich. Im Allgemeinen gilt: Erforderliche Speichermenge = Maximale Anzahl gleichzeitiger aktiver Sitzungen * durchschnittliche Sitzungsgröße.

Wichtig! Wenn nicht genug Speicher verfügbar ist, kann bei Tomcat ein Fehler auftreten. Dies hängt von den Benutzeranwendungen ab, die in Tomcat ausgeführt werden, und ist keine Beschränkung der Appliance selbst.

Benutzer-Volumes

Volume

Description

content

Volume zum Speichern von Tomcat-Anwendungen, Anwendungsdaten, temporärer Dateien und Arbeitsdateien. Dieses Volume wird nur verwendet, wenn die Eigenschaft content_on_fs auf "off" festgelegt wurde.

Eigenschaften

Eigenschaftsname

Typ

Description

content_on_fs

Zeichenfolge

Gibt an, ob der Inhalt bezogen auf das Dateisystem am fs-Terminal angegeben wird oder sich auf dem Inhalt-Volume befindet. Standard: off (auf dem Inhalt-Volume)

hostname

Zeichenfolge

Hostname der Website. Standard: localhost

tomcat_port

Ganzzahl

Port, den Tomcat auf eingehende HTTP-Anfragen überwacht. Standard: 8080

session_timeout

Ganzzahl

Zeitlimit für die Benutzersitzung in Minuten, während dem TOMCAT alle Daten aufbewahrt, die mit der Benutzersitzung verknüpft sind. Standard: 30

max_connections

Ganzzahl

Maximale Anzahl zulässiger gleichzeitiger Verbindungen. Wenn diese Zahl erreicht wird, werden neue Verbindungen noch akzeptiert, aber ihre Verarbeitung wird aufgeschoben, bis eine andere Verbindung geschlossen wird. Standard: 100

heap_size

Ganzzahl

Speicher, der Java-Heap (die -Xmx-Java-Option) zugewiesen ist, in Megabyte. Wenn 0, wird dieser Wert automatisch berechnet. Standard: 0

perm_size

Ganzzahl

Speicher, der permanenten Java-Objekten (die -XX:PermSize-Java-Option) zugewiesen ist, in Megabyte. Wenn 0, wird dieser Wert automatisch berechnet. Standard: 0

app_base

Zeichenfolge

Stammverzeichnis für die Dokumente, Arbeitsdateien und temporären Dateien. Eine typische Struktur des Verzeichnisses ${catalina.base} von Tomcat wird in diesem Ordner erstellt: freigegeben für Bibliotheken, die von allen Java-Anwendungen gemeinsam verwendet werden; "temp" und "work" für temporäre Dateien und Arbeitsdateien; und ein Unterverzeichnis, das durch die Eigenschaft work_dir definert ist - analog zu ${catalina.base}/webapps. Standard: leer

work_dir

Zeichenfolge

Verzeichnis, in dem Dokumente gespeichert sind, die bereitgestellt werden. Wird auch für die automatische Bereitstellung verwendet. Weitere Informationen sind auf der Tomcat-Website verfügbar - Automatische Anwendungsbereitstellung. Standard: webapps

timezone

Zeichenfolge

Gibt die in der Appliance verwendete Zeitzone an. Wenn diese Eigenschaft leer ist, wird die Zeitzone nicht geändert, sondern im Ist-Zustand beibehalten. Hier ist eine Liste der unterstützten Zeitzonen verfügbar. Standard: leer

Terminals

Name

Richtung

Protokoll

Description

in

in

HTTP

Verarbeitet HTTP-Anfragen von Web-Clients. Unterstützt die Protokolle HTTP/1.1, HTTP/1.0 und AJP.

db

out

Alle

Zugriff auf einen Datenbankserver. Die Syntax hängt davon ab, welche Skripten sich im Inhalt-Volume befinden (sofern vorhanden). Dieses Terminal kann ohne Verbindung bleiben, wenn es nicht verwendet wird.

fs

out

NFS

Zugriff auf ein Netzwerkdateisystem für freigegebene Dateispeicherung, wobei Lese-/Schreibzugriff auf die Dateien über NFS bereitgestellt wird. Die Syntax hängt davon ab, welche Skripten sich im Inhalt-Volume befinden (sofern vorhanden). Software auf dem Inhalt-Volume "sieht" das geladene entfernte Dateisystem als /mnt/fs im filesystem-Bereich der Appliance. Dieses Terminal kann ohne Verbindung bleiben, wenn es nicht verwendet wird. Der verbundene Server muss eine über NFS exportierte Freigabe namens /mnt/data mit Lese/Schreibzugriff besitzen.

log

out

CIFS

Zugriff auf ein CIFS-basiertes Netzwerkdateisystem zum Speichern von Zugriffs- und Fehlerprotokollen. Dieses Terminal kann ohne Verbindung bleiben, wenn es nicht verwendet wird. Der verbundene Server muss anonyme Anmeldungen zulassen und über eine exportierte Freigabe namens share mit Lese-/Schreibzugriff verfügen.

aux

out

Alle

Zugriff auf einen SMTP-Server zum Senden von ausgehender E-Mail.
Dieses Terminal kann ohne Verbindung bleiben, wenn es nicht verwendet wird.

net

out

Alle

Gateway-Ausgabe für Subnetzzugriff.
Dieses Terminal kann ohne Verbindung bleiben, wenn es nicht verwendet wird.

mon

out

CCE

Sendet statistische Daten zur Leistung und Ressourcennutzung an die MON-Appliance.
Dieses Terminal kann ohne Verbindung bleiben, wenn es nicht verwendet wird.

Die Standardschnittstelle. Sie ist für Diagnostik und Fehlersuche vorgesehen (über SSH). Künftige Versionen dieser Appliance können den SSH-Zugriff möglicherweise deaktivieren.

Protokollierungseigenschaften

Eigenschaftsname

Typ

Description

logs_enabled

Zeichenfolge

Aktiviert oder deaktiviert die gesamte Protokollierung. Standard: no

logs_base_dir

Zeichenfolge

Verzeichnis, in dem Protokolldateien gespeichert werden. Standard: leer, Protokolle werden im Stamm des geladenen NAS-Volumes platziert.

error_log_filename

Zeichenfolge

Präfix für Dateiname für das Fehlerprotokoll. Standard: catalina

log_level

Zeichenfolge

Protokollierungsebene. Die Werte sind (steigender Ausführlichkeitsgrad): - SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL. Eine detailliertere Beschreibung der Protokollebenen ist in der Tomcat-Dokumentation verfügbar. Standard: INFO

enable_access_log

Zeichenfolge

Aktiviert oder deaktiviert das Zugriffsprotokoll. Standard: no

access_log_filename

Zeichenfolge

Präfix für Dateiname für das Zugriffsprotokoll. Standard: access.log

Benutzerdefinierte Zähler

Die TOMCAT-Appliance meldet die folgenden benutzerdefinierten Zähler über das Terminal "mon". Diese Zähler gehören zur TOMCAT-Zählergruppe (TOMCAT64 im Fall von TOMCAT64):

Zählername

Description

Classes loaded

Anzahl der geladenen Klassen

Classes loaded bytes

Anzahl der geladenen Kilobyte

Classes unloaded

Anzahl der entladenen Klassen

Classes unloaded bytes

Anzahl der entladenen Kilobyte

Classes load/unload execution time

Zeit, die zum Durchführen der Lade- und Entlade-Vorgänge für Klassen aufgewendet wurde

Compiler compiled

Anzahl der durchgeführten Kompilierungsaufgaben

Compiler failed

Anzahl der fehlgeschlagenen Kompilierungsaufgaben

Compiler invalid

Anzahl der ungültig erklärten Kompilierungsaufgaben

Compiler execution time

Zeit, die für die Durchführung der Kompilierungsaufgaben aufgewendet wurde

Heap s0 space capacity

Aktuelle Survivor Space 0-Kapazität

Heap s1 space capacity

Aktuelle Survivor Space 1-Kapazität

Heap s0 space utilization

Survivor Space 0-Auslastung

Heap s1 space utilization

Survivor Space 1-Auslastung

Heap eden space capacity

Aktuelle Heap-Eden-Space-Kapazität

Heap eden space utilization

Eden-Space-Auslastung

Heap old space capacity

Aktuelle alte Speicherplatzkapazität

Heap old space utilization

Alte Speicherplatzauslastung

Heap permanent space capacity

Aktuelle permanente Speicherplatzkapazität

Heap permanent space utilization

Permanente Speicherplatzauslastung

Heap young generation GC events

Anzahl der GC-Ereignissen der jungen Generation (GC - Garbage Collection)

Heap young generation GC time

Garbage Collection-Zeit der jungen Generation

Heap number of GC events

Anzahl vollständiger GC-Ereignisse

Heap full GC time

Vollständige Garbage-Collection-Zeit

Heap total GC time

Garbage-Collection-Zeit insgesamt

Pool current new generation

Aktuelle Kapazität neue Generation

Pool min new generation

Minimale Kapazität der neue Generation

Pool max new generation

Maximale Kapazität neue Generation

Pool current old generation

Aktuelle Kapazität alte Generation

Pool min old generation

Minimale Kapazität alte Generation

Pool max old generation

Maximale Kapazität alte Generation

Pool current permanent generation

Aktuelle Kapazität permanente Generation

Pool min permanent generation

Minimale Kapazität permanente Generation

Pool max permanent generation

Maximale Kapazität permanente Generation

New generation tenuring threshold

Tenuring-Schwellenwert

New generation max tenuring threshold

Maximaler Tenuring-Schwellenwert

Gewünschte Survivor-Größe

Gewünschte Survivor-Größe

Compiler tasks

Anzahl der durchgeführten Kompilierungsaufgaben

Mögliche Fehler beim Systemstart

Wenn eine Appliance nicht gestartet werden kann, können die folgenden Fehler im Systemprotokoll vermerkt werden:

Fehlermeldung

Description

FEHLER: Protokolle sind aktiviert, aber Protokoll-Terminal ist nicht verbunden.

Protokollterminal ist nicht angeschlossen, aber für "logs_enabled" oder "enable_access_log" ist "yes" festgelegt.

FEHLER: Eigenschaft content_on_fs ist "off", aber das lokale Inhalt-Volume fehlt.

Die Eigenschaft "content_on_fs" ist auf "off" festgelegt, d. h., dass das Daten-Volume lokal geladen werden muss, TOMCAT kann aber kein Inhalts-Volume laden. Die wahrscheinlichste Ursache ist, dass das Inhalts-Volume nicht formatiert oder in den TOMCAT-Eigenschaften nicht definiert ist.

FEHLER: Nfs-Freigabe konnte nicht bereitgestellt werden.

TOMCAT kann nfs-Freigabe nicht laden. Die wahrscheinliche Ursache ist, dass fs nicht angeschlossen ist oder TOMCAT vor NAS gestartet wurde (bzw. die Appliance, die mit dem fs-Terminal verbunden ist).

Dashboard-Meldungen

Meldung

Description

Datenspeicher hat weniger als 5 % freien Festplattenspeicher

Das Daten-Volume, auf das vom Terminal "fs" zugegriffen wird, hat weniger als 5 % freien Festplattenspeicher. Es wird empfohlen, die Größe des Volumes zu vergrößern.

Datenspeicher hat weniger als 1 % freien Festplattenspeicher

Das Daten-Volume, auf das vom Terminal "fs" zugegriffen wird, hat weniger als 1 % freien Festplattenspeicher. Ein sofortiger Benutzereingriff ist erforderlich; möglicher Datenverlust kann auftreten.

Inhalts-Volume hat weniger als 5 % freien Festplattenspeicher

Das Inhalts-Volume auf der Appliance hat weniger als 5 % freien Festplattenspeicher. Es wird empfohlen, die Größe des Volumes zu vergrößern.

Inhalts-Volume hat weniger als 1 % freien Festplattenspeicher

Das Inhalts-Volume auf der Appliance hat weniger als 1 % freien Festplattenspeicher. Ein sofortiger Benutzereingriff ist erforderlich; möglicher Datenverlust kann auftreten.

Leistung

Die TOMCAT-Leistung kann beeinflusst werden, wenn die Protokollierung aktiviert ist (Fehlerprotokollierung aktiviert durch logs_enabled = yes oder Zugriffsprotokollierung - enable_access_log = yes). Die Tabelle unten enthält Benchmarkergebnisse (in rps - requests per second; Anfragen pro Sekunde); ausgeführt, wenn Protokolle mit dem Apache-Benchmark-Hilfsprogramm deaktiviert werden, das mit Apache-Webserver Version 2.0 und 2.2 geliefert wird. Weitere Informationen zu "ab" sind auf der Apache-Website verfügbar. Folgende Einstellungen wurden für das Benchmarking verwendet: "bw=500M mem=2G cpu=2".

Gleichzeitigkeit

rps

1 Client-Gleichzeitigkeit

2800-3200 rps

10 Client-Gleichzeitigkeit

7500-7900 rps

100 Client-Gleichzeitigkeit

7700-8100 rps

Typische Verwendung

Einfache Website mit Java-Unterstützung

TOMCAT bedient Anwendungen vom Inhalts-Volume.

Verwendete Appliances:

Eigenschaftsname

Wert

Hinweise

hostname

www.mysite.org

Hostname der Site.

app_base

MyApp

 

content_on_fs

off

TOMCAT verwendet den Inhalt von Benutzer-Volumes für alle Inhalte.

timezone

EST

EST-Zeitzone.

tomcat_port

80

Standardport für das HTTP-Protokoll.

Clientanfragen treffen auf dem IN-Gateway ein. Das Gateway leitet die Anfragen an den Tomcat-Server weiter, der die Anfrage verarbeitet.

Zwei-Ebenen-Anwendung mit Datenbank, Protokoll und Überwachung

Verwendete Appliances:

Beispiel-Eigenschaftskonfiguration:

Eigenschaftsname

Wert

Hinweise

hostname

www.mysite.org

Hostname der Site

app_base

MyApp

 

content_on_fs

on

TOMCAT verwendet Remote-Speicher über den fs-Terminal für den gesamten Inhalt.

timezone

EST

EST-Zeitzone

tomcat_port

80

Standardport für das HTTP-Protokoll.

max_connections

200

Höchstens 200 gleichzeitige Benutzer

logs_enabled

ja

Aktiviert Fehlerprotokolle

logs_base_dir

MyApp_Log_Dir

 

log_level

INFO

 

error_log_filename

error_log

Fehlerprotokollname

enable_access_log

ja

Aktiviert Zugriffsprotokoll

access_log_filename

myapp_access

Zugriffsprotokollname

Clientanfragen kommen am IN-Gateway an. Das Gateway leitet die Anfragen an den Tomcat-Server weiter, der die Anfrage verarbeitet. Inhalt und Protokolle befinden sich auf der storage-Appliance. Indikatoren werden an die mon-Appliance ausgegeben

Hinweis: Java-Anwendungen können viele Typen von Datenbanken verwenden. Es hängt nur davon ab, ob der entsprechende JDBC-Treiber in der Anwendung vorhanden ist. Mit TOMCAT kann jede beliebige Datenbank-Appliance an das zugehörige db-Terminal angeschlossen werden.

WEB6 als Fronend für TOMCAT

Das folgende Diagramm zeigt die Verwendung der TOMCAT-Appliance als Anwendungsserver und WEB6 als Frontend. WEB6 verarbeitet statischen Inhalt und leitet alle Anfragen, die eine serverseitige Verarbeitung erfordern, mithilfe eines AJP-Protokolls an den TOMCAT weiter.

Hinweis: Für diesen Modus muss AJP-Support in WEB6 aktiviert werden mod_proxy und mod_proxy_ajp aktivieren).

Verwendete Appliances:

Beispiel-Eigenschaftskonfiguration:

Eigenschaftsname

Wert

Hinweise

content_on_fs

off

TOMCAT verwendet den Inhalt von Benutzer-Volumes für alle Inhalte,

timezone

EST

EST-Zeitzone

Andere Einstellungen haben eigene Standardwerte.

WEB6 muss richtig konfiguriert werden, um als Frontend zu funktionieren und über ein AJP-Protokoll mit TOMCAT zu kommunizieren zu können.

mod_proxy und mod_proxy_ajp müssen aktiviert werden, indem die folgenden Zeilen in die Apache-Konfiguration eingefügt werden:^

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 

Einige Pfade des URL-Bereichs müssen für die Bereitstellung durch TOMCAT angegeben werden, z. B.

ProxyPass /path-that-served-by-tomcat ajp://aux:8009/some-servlet
ProxyPassReverse /path-that-served-by-tomcat ajp://aux:8009/some-servlet

Zum Beispiel:

Pfad

content

bereitgestellt von

/index.html

statisches HTML-Dokument

bereitgestellt von WEB6

/images/*

statische grafische Dateien

bereitgestellt von WEB6

/scripts/*.php

von PHP-Skripten generierter dynamischer Inhalt

bereitgestellt von WEB6

/path-that-served-by-tomcat

vin JSP generierter dynamischer Inhalt

bereitgestellt von TOMCAT

Clientanfragen kommen am IN-Gateway an. Das Gateway leitet die Anfragen an den Frontend-Webserver weiter, der Anfragen für statische HTML-Seiten, grafischen Dateien und PHP-Skripten bereitstellt. Anfragen für JSP-Seiten oder Servlet-Seiten werden an AppServer weitergeleitet und von diesem bereitgestellt.

Skalierbare Website mit Java-Unterstützung

Verwendete Appliances:

Beispiel-Eigenschaftskonfiguration sowohl für AppServer1 als auch für AppServer2:

Eigenschaftsname

Wert

Hinweise

content_on_fs

off

TOMCAT verwendet den Inhalt von Benutzer-Volumes für alle Inhalte,

timezone

EST

EST-Zeitzone

Andere Einstellungen haben eigene Standardwerte.

Clientanfragen kommen am IN-Gateway an. Das Gateway leitet die Anfragen an das Lastenausgleichsmodul lb weiter, das die Anfragen an einen der Server AppServer1 und AppServer2 sendet.

In der Appliance verwendete Open Source- und Drittanbietersoftware

TOMCAT und TOMCAT64 verwenden zusätzlich zu den Drittanbieter-/Open-Source-Paketen der jeweiligen Basisklassen LUX6 und LUX64 die folgenden Drittanbieter-/Open-Source-Pakete.

TOMCAT

Software

Version

Geändert

Lizenz

Hinweise

Apache Tomcat

6.0.29

Ja

Apache-Lizenz v2.0

homepage

JDK

1.6.0.22

Nein

Sun-BCL

verfügbar auf der Sun-Website

samba-client

3.5.10-125.el6

Nein

GPLv2

N/A

samba-common

3.5.10-125.el6

Nein

GPLv2

N/A

TOMCAT64

Software

Version

Geändert

Lizenz

Hinweise

Apache Tomcat

6.0.29

Ja

Apache-Lizenz v2.0

homepage

JDK

1.6.0.22

Nein

Sun-BCL

verfügbar auf der Sun-Website

samba-client

3.5.10-125.el6

Nein

GPLv2

N/A

samba-common

3.5.10-125.el6

Nein

GPLv2

N/A