1. Einleitung Zunächst müssen wir eine Frage beantworten: Warum mehrere Instanzen auf einer einzigen Maschine verwenden? 2. Systemumgebung System: 16.04.5 LTS 3. Umweltkonstruktion 3.1. Laden Sie Tomcat herunter Installieren Sie JDK: apt-get installiere openjdk-8-jdk Besuchen Sie die offizielle Website: https://tomcat.apache.org/download-90.cgi Suchen Sie nach Core, klicken Sie auf tar.gz und kopieren Sie die Download-Adresse, wenn ein Download-Link angezeigt wird. wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz Tomcat entpacken: tar -xzvf apache-tomcat-9.0.13.tar.gz Erstellen Sie ein Programmverzeichnis: ##Erstellen Sie ein Programmverzeichnis mkdir /data ##Verschieben Sie die entpackte Datei in das Datenverzeichnis mv ./apache-tomcat-9.0.13 /data/ cp /etc/profile /etc/profile.bak echo "export CATALINA_HOME=/data/apache-tomcat-9.0.13" >> /etc/profile echo "export PATH=\$PATH:\$CATALINA_HOME/bin">> /etc/profile && Quelle /etc/profile ##Erstellen Sie die sh-Datei touch tomcat-start.sh tomcat-stop.sh ##Berechtigungen ändern chmod 760 /data/tomcat-start.sh /data/tomcat-stop.sh Sichern Sie das Profil, schreiben Sie Tomcats CATALINA_HOME in die Umgebungsvariable und aktivieren Sie die Umgebungsvariable. erstellen tomcat-start.sh, der Inhalt ist wie folgt: #!/bin/bash ##CATALINA_BASE ist hier das übergeordnete Verzeichnis des aktuellen Skripts. Wenn es sich nicht im Unterverzeichnis von CATALINA_BASE befindet, denken Sie daran, Folgendes zu ändern: export CATALINA_BASE=$(cd $(dirname $0); cd .. ; pwd) echo $CATALINA_BASE TOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'` wenn [ -n "$TOMCAT_ID" ] ; dann echo "tomcat($TOMCAT_ID) läuft noch, bitte zuerst herunterfahren"; Ausgang 2; fi TOMCAT_START_LOG=`$CATALINA_HOME/bin/startup.sh` wenn [ "$?" = "0" ]; dann echo "Shell-Skript: $0" echo "CATALINA_BASE: $CATALINA_BASE" echo "Tomcat-Thread: $TOMCAT_ID" echo "Start erfolgreich!!!" anders echo "$0 $CATALINA_BASE-Start fehlgeschlagen" echo $TOMCAT_START_LOG fi erstellen tomcat-stop.sh, der Inhalt ist wie folgt: #!/bin/bash ##CATALINA_BASE ist hier das übergeordnete Verzeichnis des aktuellen Skripts. Wenn es sich nicht im Unterverzeichnis von CATALINA_BASE befindet, denken Sie daran, Folgendes zu ändern: export CATALINA_BASE=$(cd $(dirname $0); cd .. ; pwd) echo $CATALINA_BASE TOMCAT_ID=`ps aux |grep "java"|grep "[D]catalina.base=$CATALINA_BASE "|awk '{ print $2}'` wenn [ -n "$TOMCAT_ID" ] ; dann TOMCAT_STOP_LOG=`$CATALINA_HOME/bin/shutdown.sh` anders echo "Tomcat-Instanz nicht gefunden: $CATALINA_BASE" Ausfahrt fi wenn [ "$?" = "0" ]; dann echo "Shell-Skript: $0" echo "CATALINA_BASE: $CATALINA_BASE" echo "Stopp erfolgreich!!!" anders echo "$0 $CATALINA_BASE-Stopp fehlgeschlagen" echo $TOMCAT_STOP_LOG fi Kopiere zwei Kater: ##Löschen Sie den Inhalt der Ordner „lib“ und „bin“ vollständig und erstellen Sie einen leeren Ordner „bin“. cp -r apache-tomcat-9.0.13 /data/apache-tomcat-test1 && cd /data/apache-tomcat-test1 && rm -rf lib/ bin/ && mkdir bin && cd - ##Kopieren Sie die Start- und Stoppskripte in den Bin-Ordner, kopieren Sie sie mit den Berechtigungen cp -p tomcat-start.sh tomcat-stop.sh /data/apache-tomcat-test1/bin/ ##Kopieren Sie dasselbe Tomcat-Verzeichnis mit den Berechtigungen cp -Rp /data/apache-tomcat-test1/ /data/apache-tomcat-test2/ Konfigurieren Sie den server.xml-Port Wie Sie wissen, müssen verschiedene Tomcats, die auf demselben Server bereitgestellt werden, unterschiedliche Ports festlegen, da es sonst zu Portkonflikten kommt. Daher müssen wir nur die ersten drei Ports in conf/server.xml ändern. Aber es gibt vier davon:
Unkommentierte Version: <?xml version="1.0" encoding="UTF-8"?> <Server-Port="8005" shutdown="HERUNTERFAHREN"> <Listener-Klassenname="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener-Klassenname="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener-Klassenname="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener-Klassenname="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Ressourcenname="Benutzerdatenbank" auth="Container" Typ="org.apache.catalina.UserDatabase" Beschreibung="Aktualisierbare und speicherbare Benutzerdatenbank" Fabrik="org.apache.catalina.users.MemoryUserDatabaseFactory" Pfadname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Dienstname="Catalina"> <Anschlussport="8080" Protokoll="HTTP/1.1" VerbindungsTimeout="20000" UmleitungsPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine-Name="Catalina" Standardhost="localhost"> <Realm-Klassenname="org.apache.catalina.realm.LockOutRealm"> <Realm-Klassenname="org.apache.catalina.realm.UserDatabaseRealm" resourceName="Benutzerdatenbank"/> </Reich> <Hostname="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve-Klassenname="org.apache.catalina.valves.AccessLogValve" Verzeichnis="Protokolle" Präfix="localhost_access_log" Suffix=".txt" Muster="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Dienst> </Server> tomcat-test1 wird geändert in:
tomcat-test2 wird geändert in:
Ändern Sie das Logo: echo "test1"> /data/apache-tomcat-test1/webapps/ROOT/index.jsp echo "test2"> /data/apache-tomcat-test2/webapps/ROOT/index.jsp Nachdem die Änderung abgeschlossen ist, starten Sie Tomcat: /data/apache-tomcat-test1/bin/tomcat-start.sh /data/apache-tomcat-test2/bin/tomcat-start.sh Der Curl-Prozess ist relativ langsam, da er noch nicht abgeschlossen ist. Nach dem Starten ist alles ok. Locken 127.0.0.1:9010 Locken 127.0.0.1:9020 Beachten Sie, dass der Zugriffsport hier der Port ist, der 4. Nachtrag Tatsächlich ist die Einrichtung nicht schwierig. Gemäß der Idee des Referenzartikels besteht sie darin, eine Tomcat-Bibliothek und einen Tomcat-Bin gemeinsam zu nutzen. Auf diese Weise müssen Sie beim Upgrade nur die Bibliothek ersetzen, und der Bin verwendet dasselbe Skript wie CATALINA_HOME. Tatsächlich rufen die Start- und Herunterfahrskripte unter dem Bin unter CATALINA_HOME einheitlich catalina.sh auf, und das System mit mehreren Instanzen auf einer Maschine 5. Frage 5.1. Tomcat startet langsam Es ist ersichtlich, dass die Gesamtzeit der Anwendungsbereitstellung erheblich zunimmt, da die Generierung der Sitzungs-ID 1 Minute und 6 Sekunden dauert, was zu lang ist. Dieses Problem kann gelöst werden, indem beim Starten der Anwendung der JVM-Parameter #!/bin/bash ##CATALINA_BASE ist hier das übergeordnete Verzeichnis des aktuellen Skripts. Wenn es sich nicht im Unterverzeichnis von CATALINA_BASE befindet, denken Sie daran, Folgendes zu ändern: export CATALINA_BASE=$(cd $(dirname $0); cd .. ; pwd) echo $CATALINA_BASE TOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'` export JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"; wenn [ -n "$TOMCAT_ID" ] ; dann echo "tomcat($TOMCAT_ID) läuft noch, bitte zuerst herunterfahren"; Ausgang 2; fi TOMCAT_START_LOG=`$CATALINA_HOME/bin/startup.sh` wenn [ "$?" = "0" ]; dann echo "Shell-Skript: $0" echo "CATALINA_BASE: $CATALINA_BASE" echo "Tomcat-Thread: $TOMCAT_ID" echo "Start erfolgreich!!!" anders echo "$0 $CATALINA_BASE-Start fehlgeschlagen" echo $TOMCAT_START_LOG fi 5.2. Bei der Verwendung von Remote-SSH werden die Umgebungsvariablen nicht wirksam Verwenden Sie den Quellbefehl, um die aktuellen Umgebungsvariablen zu aktualisieren. Die spezifischen Änderungen sind wie folgt: #!/bin/bash ##CATALINA_BASE hier ist das übergeordnete Verzeichnis des aktuellen Skripts. Wenn es sich nicht im Unterverzeichnis von CATALINA_BASE befindet, denken Sie daran, die Quelle /etc/profile zu ändern export CATALINA_BASE=$(cd $(dirname $0); cd .. ; pwd) export JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"; TOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'` Echo "----------------------------------" echo "Verwende CATALINA_BASE:$CATALINA_BASE" echo "Verwende CATALINA_HOME:$CATALINA_HOME" Echo "----------------------------------" wenn [ -n "$TOMCAT_ID" ] ; dann echo "tomcat($TOMCAT_ID) läuft noch, bitte zuerst herunterfahren"; Ausgang 2; fi TOMCAT_START_LOG=`$CATALINA_HOME/bin/startup.sh` wenn [ "$?" = "0" ]; dann echo "Shell-Skript: $0" echo "Tomcat-Thread: $TOMCAT_ID" echo "Start erfolgreich!!!" anders echo "$0 $CATALINA_BASE-Start fehlgeschlagen" echo "CATALINA_BASE: $CATALINA_BASE" echo $TOMCAT_START_LOG fi
#!/bin/bash ## CATALINA_BASE ist hier das übergeordnete Verzeichnis des aktuellen Skripts. Wenn es sich nicht im Unterverzeichnis von CATALINA_BASE befindet, denken Sie daran, die Quelle /etc/profile zu ändern export CATALINA_BASE=$(cd $(dirname $0); cd .. ; pwd) TOMCAT_ID=`ps aux |grep "java"|grep "[D]catalina.base=$CATALINA_BASE "|awk '{ print $2}'` Echo "----------------------------------" echo "Verwende CATALINA_BASE:$CATALINA_BASE" echo "Verwende CATALINA_HOME:$CATALINA_HOME" Echo "----------------------------------" wenn [ -n "$TOMCAT_ID" ] ; dann TOMCAT_STOP_LOG=`$CATALINA_HOME/bin/shutdown.sh` anders echo "Tomcat-Instanz nicht gefunden: $CATALINA_BASE" Ausfahrt fi wenn [ "$?" = "0" ]; dann echo "Shell-Skript: $0" echo "Stopp erfolgreich!!!" anders echo "$0 $CATALINA_BASE-Stopp fehlgeschlagen" echo "CATALINA_BASE: $CATALINA_BASE" echo $TOMCAT_STOP_LOG fi Hängen Sie das Neustartskript an: #!/bin/bash Quelle /etc/Profil export CATALINA_BASE=$(cd $(dirname $0); cd .. ; pwd) GRÜNE_FARBE='\E[1;32m' # Grün RES='\E[0m' TOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'` SLEEP_TIME = 1 Echo "----------------------------------" echo "Verwende CATALINA_BASE:$CATALINA_BASE" echo "Verwende CATALINA_HOME:$CATALINA_HOME" Echo "----------------------------------" wenn [ -n "$TOMCAT_ID" ] ; dann echo -e "${GREEN_COLOR}Tomcat-Instanz in PID $TOMCAT_ID gefunden, jetzt herunterfahren!${RES}"; echo -e "${GREEN_COLOR}---------------Herunterfahren starten-------------------${RES}" Quelle $(Verzeichnisname $0)/tomcat-stop.sh; echo -e "${GREEN_COLOR}--------------- Ende des Herunterfahrens -------------------${RES}" fi während [ -n "$TOMCAT_ID" ] Tun schlafen $SLEEP_TIME echo warte "$SLEEP_TIME" s TOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'` Erledigt echo -e "${GREEN_COLOR}----------------Start Start-------------------${RES}" Quelle $(Verzeichnisname $0)/tomcat-start.sh echo -e "${GREEN_COLOR}----------------Start beenden-------------------${RES}" Referenzblog: Lassen Sie uns über Tomcats Einzelmaschine mit mehreren Instanzen sprechen Langsamer Start der Spring Boot-Anwendung beim ersten Mal Dies ist das Ende dieses Artikels über die Implementierung mehrerer Instanzen von Tomcat auf einer einzelnen Maschine. Weitere relevante Inhalte zu mehreren Instanzen von Tomcat auf einer einzelnen Maschine finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: js, um einen Ein- und Ausblendeffekt des Bildes zu erzielen
>>: Warum MySQL große Transaktionen vermeiden sollte und wie man sie löst
1. Seitenanforderungen 1) Verwenden Sie standardm...
<br />Statistiken zufolge hat sich die durch...
Inhaltsverzeichnis Initialisieren des Projekts Sc...
In diesem Artikel wird der spezifische Code von V...
Das Löschen einer Tabelle in MySQL ist sehr einfa...
Voraussetzungen Ein Cloud-Server (centOS von Alib...
beschreiben Gibt das Zeitintervall zwischen zwei ...
Inhaltsverzeichnis Vorwort 1. Nginx-Installation ...
Linux-Betrieb Experimentelle Umgebung: Centos7-Vi...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort Wenn Sie wie ich ein fleißiger Java-Backe...
Wenn Sie den Stil „table-layer:fixed“ für eine Ta...
1. Ziehen Sie das Mysql-Image docker pull mysql:5...
HTML ist eine Hybridsprache, die zum Veröffentlic...
1. Welche Zeilenformate gibt es? Sie können Ihre ...