Ich versuche, mehrere Instanzen von Tomcat auszuführen, aber nachdem ich die zweite Instanz zum Anhören und Herunterfahren der zweiten Instanz konfiguriert habe, versucht sie ständig, 8080 (für 8081 konfiguriert) zu überwachen. Ich habe gelesen, dass ich für CATALINA_BASE
einen anderen Wert einstellen muss. Von allen Artikeln, die online verfügbar sind, zeigt keiner von ihnen, in welcher Datei diese Variable eingestellt werden kann.
Wo und wie kann ich CATALINA_BASE für meine Tomcat-Instanz in C:\Apache-Tomcat-7.0.39
einstellen?
Die einfachste Möglichkeit, zwei Kopien von Tomcat auszuführen, umfasste die folgenden Schritte (ich habe versucht, zwei verschiedene Versionen von Tomcat 6 und 7 auszuführen):
Legen Sie 2 Kopien von Tomcat in verschiedenen Ordnern an (wenn es sich um unterschiedliche Versionen handelt, ist dies einfach. Wenn sie dieselbe Version haben, müssen Sie sie auf andere Weise unterscheiden.) Es gibt eine Vielzahl von Dateien, die Tomcat erstellt, um das Programm so auszuführen zwei Instanzen mit demselben Arbeitsverzeichnis sind wahrscheinlich nicht möglich)
Ändern Sie die folgenden Ports, die Tomcat in server.xml
hört.
<Connector port="8080">
<- Dies ist der Port, den Tomcat verwendet, um auf HTTP-Anforderungen zu antworten<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<- Dies definiert zwei Ports, einen für den AJP-Connector (wird verwendet, wenn Sie Tomcat hinter einem Apache- oder IIS -Server) verwenden, und den für den HTTPS-Verkehr verwendeten Port<Server port="8005" shutdown="SHUTDOWN">
<- Dies ist der Port, den Tomcat verwendet, um auf SHUTDOWN-Ereignisse zu reagierenWenn Sie dies als Windows-Dienst ausführen, müssen Sie für jede Instanz unterschiedliche Dienstnamen festlegen (dies ist während des Setups möglich, der Standard für Tomcat 7 ist Tomcat7). Sobald Tomcat ausgeführt wird, verwenden alle Konfigurationsfelder relative Pfade, sodass Sie nicht CATALINA_BASE
berühren müssen.
Angenommen, Sie haben nur einen Tomcat-Ordner unter C:\Apache-Tomcat-7.0.39 und möchten zwei Instanzen davon ausführen.
Stellen Sie sicher, dass Sie CATALINA_HOME system/user variable gesetzt haben und auf C:\Apache-Tomcat-7.0.39 zeigen.
Erstellen Sie einen Ordner C:\Instanz1. Kopieren Sie die Ordner conf , webapps und temp aus C:\Apache-Tomcat-7.0.39 und fügen Sie sie in C:\instance1 ein. Sie können Inhalte aus Webapps und temporären Ordnern unter Instanz1 löschen, berühren Sie jedoch nicht conf contents.
Kopieren Sie nun> C:\Instanz1 einfügen und benennen Sie sie in Instanz2 um. Auf diese Weise haben beide Instanz1 und Instanz2 den gleichen Inhalt.
Gehen Sie zu C:\Instanz2\Conf, bearbeiten Sie server.xml und ändern Sie die Nummer dieser Ports (die ich als XXXX gekennzeichnet habe):
<Server port="XXXX" shutdown="SHUTDOWN">
<Connector port="XXXX" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="XXXX" protocol="AJP/1.3" redirectPort="8443" />
Stellen Sie das, was Sie möchten in instanz1\webapps und instanz2\webapps bereit
Erstellen Sie die folgenden 4 Batchdateien unter C: \
instance1_startup.bat
@echo aus
set CATALINA_BASE = C:\Instanz1
cd "% CATALINA_HOME%\bin"
set TITLE = Meine Tomcat-Instanz 01
rufen Sie startup.bat% TITLE% auf.
instance1_shutdown.bat
@echo aus
set CATALINA_BASE = C:\Instanz1
cd "% CATALINA_HOME%\bin"
rufen Sie shutdown.bat auf
instance2_startup.bat
@echo aus
set CATALINA_BASE = C:\Instanz2
cd "% CATALINA_HOME%\bin"
set TITLE = Meine Tomcat-Instanz 02
rufen Sie startup.bat% TITLE% auf.
instance2_shutdown.bat
@echo aus
set CATALINA_BASE = C:\Instanz2
cd "% CATALINA_HOME%\bin"
rufen Sie shutdown.bat auf
Wenn Sie Tomcat nicht für mehrere Instanzen konfiguriert haben, indem Sie ein CATALINA_BASE-Verzeichnis festgelegt haben, wird $ CATALINA_BASE auf den Wert von $ CATALINA_HOME gesetzt, dem Verzeichnis, in dem Sie Tomcat installiert haben.
Der einfachste Weg ist, einen anderen Tomcat 8 oder 9 herunterzuladen und während der Installation zu installieren, ändern Sie alle Portnummern. Das Kopieren der vorhandenen Instanz und das Ändern der Portnummer in server.xml kann zu Fehlern bei Diensten führen.