web-dev-qa-db-fra.com

Tomcat plusieurs instances simultanément

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

24
Bruno Klein

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.

31
Jason Sperske

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.

  1. 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.

  2. Maintenant, copiez> collez C:\instance1 et renommez-le en instance2. De cette façon, instance1 et instance2 auront le même contenu.

  3. 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" />

  4. Déployez ce que vous voulez dans instance1\webapps et instance2\webapps

  5. 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

  1. Exécutez instance1_startup.bat et instance2_startup.bat, espérons-le, cela devrait fonctionner.
46
Goran Vasic

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.

1
Alpesh Gediya

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.

0
Kesavan Maharajan