Ich habe mehrere Instanzen von Tomcat 6 auf demselben Server (Linux) und es funktioniert wie erwartet. Ich versuche herauszufinden, was die Standardpraxis in Bezug auf das Setzen der Variablen CATALINA_HOME
und CATALINA_BASE
ist.
In meinem Kater Installation, ich habe ein Setup CATALINA_HOME
zu Punkt zu einem „gemeinsamen“ Ordner (sagen wir /tomcat6
) und die CATALINA_BASE
Variable variiert in Abhängigkeit von den Instanznamen abhängig (sagen wir /tomcat_instance1
, /tomcat_instance2
)
Meine Frage lautet:
- Benötige ich wirklich zwei Variablen?
- Oder kann ich einfach eine haben
CATALINA_HOME
und abschaffenCATALINA_BASE
(oder umgekehrt)?
java
tomcat
environment-variables
Souser
quelle
quelle
$CATALINA_HOME
) von der Wartung der Tomcat-Instanzkonfiguration und der Inhalte (die darin leben$CATALINA_BASE
) zu trennen .Antworten:
Wenn Sie mehrere Instanzen von Tomcat auf einem einzelnen Host ausführen, sollten Sie festlegen
CATALINA_BASE
, dass sie dem Verzeichnis.../tomcat_instance1
oder.../tomcat_instance2
für jede Instanz und derCATALINA_HOME
Umgebungsvariablen der allgemeinen Tomcat-Installation entsprechen, deren Dateien von den beiden Instanzen gemeinsam genutzt werden.Die
CATALINA_BASE
Umgebung ist optional, wenn Sie eine einzelne Tomcat-Instanz auf dem Host ausführen, und wirdCATALINA_HOME
in diesem Fall standardmäßig verwendet . Wenn Sie mehrere Instanzen ausführen, sollten Sie diese bereitstellen.Eine ziemlich gute Beschreibung dieses Setups finden Sie in der
RUNNING.txt
Datei im Stammverzeichnis der Apache Tomcat-Distribution unter der Überschrift Erweiterte Konfiguration - Mehrere Tomcat-Instanzenquelle
CATALINA_HOME
vs.CATALINA_BASE
Wenn Sie mehrere Instanzen ausführen, benötigen Sie ansonsten beide Variablen
CATALINA_HOME
.Mit anderen Worten:
CATALINA_HOME
ist erforderlich undCATALINA_BASE
optional.CATALINA_HOME
stellt das Stammverzeichnis Ihrer Tomcat-Installation dar.Siehe: Apache Tomcat 7 - Einführung
Läuft mit separat
CATALINA_HOME
undCATALINA_BASE
ist in RUNNING.txt dokumentiert, die sagen:Beispielsweise:
Mehrere Tomcat-Instanzen
Wie zu überprüfen
Der einfachste Weg , um zu überprüfen , was Ihre
CATALINA_BASE
undCATALINA_HOME
ist durch Laufenstartup.sh
, zum Beispiel:Sie können auch mit dem folgenden
dpkg
Tool (Debian / Ubuntu) überprüfen, wo die Tomcat-Dateien installiert sind :quelle
Ich kann nicht sagen, dass ich die besten Praktiken kenne, aber hier ist meine Perspektive.
Sind Sie mit diesen Variablen für irgendetwas?
Persönlich musste ich weder unter Linux noch unter Windows Änderungen in Umgebungen vornehmen, die von der Entwicklung bis zur Produktion variieren. Wenn Sie nicht etwas Besonderes tun, das sich auf sie stützt, können Sie sie wahrscheinlich in Ruhe lassen.
catalina.sh
Legt die Variablen fest, die Tomcat benötigt, um sofort zu arbeiten. Es heißt auch, dass diesCATALINA_BASE
optional ist:Ich bin mir ziemlich sicher, dass Sie herausfinden werden, ob Ihr Setup funktioniert, wenn Sie Ihren Server starten.
quelle
catalina_home
Pfad in der\bin\catalina.sh
Datei für beide Instanzen von Tomcat festlegen ?Wenn Sie
CATALINA_BASE
auf ein anderes Verzeichnis als verweisen ,CATALINA_HOME
können Sie das Konfigurationsverzeichnis vom Binärverzeichnis trennen.Standardmäßig verweisen
CATALINA_BASE
(Konfigurationen) undCATALINA_HOME
(Binärdateien) auf denselben Ordner. Wenn Sie jedoch die Konfigurationen von den Binärdateien trennen, können Sie mehrere Instanzen von Tomcat nebeneinander ausführen, ohne die Binärdateien zu duplizieren.Dies ist auch nützlich, wenn Sie die Binärdateien aktualisieren möchten, ohne sie zu ändern oder Ihre Konfigurationsdateien für Tomcat sichern / wiederherstellen zu müssen.
Update 2018
Es gibt eine einfachere Möglichkeit, CATALINA_BASE jetzt mit dem
makebase
Dienstprogramm festzulegen . Ich habe ein Tutorial zu diesem Thema unter http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html zusammen mit einem Video-Tutorial unter https://youtu.be veröffentlicht / nuugoG5c-7MDie ursprüngliche Antwort wurde unten fortgesetzt
Um diese Funktion zu nutzen, erstellen Sie einfach das Konfigurationsverzeichnis und zeigen Sie mit der
CATALINA_BASE
Umgebungsvariablen darauf. Sie müssen einige Dateien in diesem Verzeichnis ablegen:conf
Verzeichnis aus dem ursprünglichen Tomcat-Installationsverzeichnis, einschließlich seines Inhalts, und stellen Sie sicher, dass Tomcat über Leseberechtigungen verfügt. Bearbeiten Sie die Konfigurationsdateien entsprechend Ihren Anforderungen.logs
Verzeichnis, wenn es daraufconf/logging.properties
verweist${catalina.base}/logs
, und stellen Sie sicher, dass Tomcat über Lese- / Schreibberechtigungen verfügt.temp
Verzeichnis, wenn Sie nicht die Standardeinstellung überschreiben, auf$CATALINA_TMPDIR
die verweist${CATALINA_BASE}/temp
, und stellen Sie sicher, dass Tomcat über Schreibberechtigungen verfügt.work
standardmäßig ein Verzeichnis${CATALINA_BASE}/work
und stellen Sie sicher, dass Tomcat über Schreibberechtigungen verfügt.quelle
CATALINA_BASE ist optional.
In den folgenden Szenarien ist es jedoch hilfreich, CATALINA_BASE einzurichten, das von CATALINA_HOME getrennt ist.
Wenn mehr als eine Instanz von Tomcat auf demselben Host ausgeführt wird
Trennung von Bedenken (Einzelverantwortung)
quelle
Dies ist der übergeordnete Ordner von bin, der die Datei tomcat.exe enthält:
CATALINA_BASE
ist das gleiche wieCATALINA_HOME
.quelle