J'essaie d'exécuter plusieurs instances de Tomcat, mais même après avoir configuré différents ports pour écouter et arrêter la deuxième instance, il continue d'essayer d'écouter sur 8080 (configuré pour 8081). J'ai lu que je devais définir une valeur différente pour CATALINA_BASE
. Parmi tous les articles en ligne, aucun d’entre eux n’indique dans quel fichier cette variable peut être définie.
Où et comment définir CATALINA_BASE pour mon instance Tomcat dans C:\Apache-Tomcat-7.0.39
La façon la plus simple d’exécuter deux copies de Tomcat a été la suivante (j’essayais d’exécuter deux versions distinctes de Tomcat, 6 et 7):
Établissez 2 copies de Tomcat dans différents dossiers (s’il s’agit de versions différentes, c’est facile, mais si vous avez la même version, vous devrez vous distinguer d’une autre manière. Tomcat crée de nombreux fichiers pour la gérer. deux instances avec le même répertoire de travail n'est probablement pas possible)
Modifier les ports suivants que Tomcat écoute dans server.xml
<Connector port="8080">
<- Il s'agit du port utilisé par Tomcat pour répondre aux requêtes HTTP.<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<- définit deux ports, un pour le connecteur AJP (utilisé si vous utilisez Tomcat derrière un serveur Apache ou IIS) et le port utilisé pour le trafic HTTPS.<Server port="8005" shutdown="SHUTDOWN">
<- il s'agit du port utilisé par Tomcat pour répondre aux événements SHUTDOWN.Enfin, si vous exécutez ce service en tant que service Windows, vous devrez établir des noms de service différents pour chaque instance (vous pouvez le faire lors de la configuration, par défaut pour Tomcat 7, Tomcat7). Une fois que Tomcat exécute tous ses champs de configuration, utilisez des chemins relatifs, vous n’avez donc pas besoin de toucher CATALINA_BASE
.
Supposons que vous n'ayez qu'un seul dossier Tomcat situé dans C:\Apache-Tomcat-7.0.39 et que vous souhaitiez exécuter deux instances à partir de celui-ci.
Assurez-vous que vous avez défini CATALINA_HOME variable système/utilisateur et que vous pointez sur C:\Apache-Tomcat-7.0.39.
Créez un dossier C:\instance1. Copiez les dossiers conf, webapps et temp de C:\Apache-Tomcat-7.0.39 et collez-les dans C:\instance1. Vous pouvez supprimer le contenu des applications Web et des dossiers temporaires situés dans instance1, mais ne touchez pas le contenu conf.
Maintenant, copiez> collez C:\instance1 et renommez-le en instance2. De cette façon, instance1 et instance2 auront le même contenu.
Allez dans C:\instance2\conf, éditez server.xml et changez les numéros de ces ports (je les ai marqués comme XXXX):
<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" />
Déployez ce que vous voulez dans instance1\webapps et instance2\webapps
Créez les 4 fichiers batch suivants sous C: \
instance1_startup.bat
@Écho off
définir CATALINA_BASE = C:\instance1
cd "% CATALINA_HOME%\bin"
set TITLE = Mon instance de Tomcat 01
appelez startup.bat% TITLE%
instance1_shutdown.bat
@Écho off
définir CATALINA_BASE = C:\instance1
cd "% CATALINA_HOME%\bin"
appelez shutdown.bat
instance2_startup.bat
@Écho off
définir CATALINA_BASE = C:\instance2
cd "% CATALINA_HOME%\bin"
set TITLE = Mon instance de Tomcat 02
appelez startup.bat% TITLE%
instance2_shutdown.bat
@Écho off
définir CATALINA_BASE = C:\instance2
cd "% CATALINA_HOME%\bin"
appelez shutdown.bat
Si vous n'avez pas configuré Tomcat pour plusieurs instances en définissant un répertoire CATALINA_BASE, $ CATALINA_BASE aura la valeur $ CATALINA_HOME, le répertoire dans lequel vous avez installé Tomcat.
Le moyen le plus simple est de télécharger un autre Tomcat 8 ou 9 et de l'installer lors de l'installation, modifiez tous les numéros de port. La copie de l'instance existante et la modification du numéro de port dans server.xml peuvent provoquer des erreurs avec les services.