J'ai plusieurs instances de tomcat 6 fonctionnant sur le même serveur (Linux) et cela fonctionne comme prévu. J'essaie de découvrir quelle est la pratique standard en ce qui concerne la définition des variables CATALINA_HOME
et CATALINA_BASE
.
Dans mon installation tomcat, j'ai installé CATALINA_HOME
pour pointer vers un dossier « commun » ( par exemple /tomcat6
) et la CATALINA_BASE
variable évolue en fonction du nom de l' instance ( par exemple /tomcat_instance1
, /tomcat_instance2
)
Ma question est la suivante:
- Ai-je vraiment besoin de deux variables?
- Ou puis-je en avoir un
CATALINA_HOME
et m'en débarrasserCATALINA_BASE
(ou vice-versa)?
java
tomcat
environment-variables
souser
la source
la source
$CATALINA_HOME
) de la maintenance de la configuration et du contenu de l'instance Tomcat (qui vivent dans$CATALINA_BASE
).Réponses:
Si vous exécutez plusieurs instances de Tomcat sur un seul hôte, vous devez définir
CATALINA_BASE
une valeur égale au répertoire.../tomcat_instance1
ou.../tomcat_instance2
selon le cas pour chaque instance et à laCATALINA_HOME
variable d'environnement de l'installation Tomcat commune dont les fichiers seront partagés entre les deux instances.L'
CATALINA_BASE
environnement est facultatif si vous exécutez une seule instance Tomcat sur l'hôte et sera par défautCATALINA_HOME
dans ce cas. Si vous exécutez plusieurs instances telles quelles, elles doivent être fournies.Il y a une assez bonne description de cette configuration dans le
RUNNING.txt
fichier à la racine de la distribution Apache Tomcat sous la rubrique Configuration avancée - Plusieurs instances Tomcatla source
CATALINA_HOME
contreCATALINA_BASE
Si vous exécutez plusieurs instances, vous avez besoin des deux variables, sinon uniquement
CATALINA_HOME
.En d'autres termes:
CATALINA_HOME
est obligatoire etCATALINA_BASE
facultative.CATALINA_HOME
représente la racine de votre installation Tomcat.Voir: Apache Tomcat 7 - Introduction
Exécution avec séparé
CATALINA_HOME
etCATALINA_BASE
est documenté dans RUNNING.txt qui dit:Par exemple:
Plusieurs instances Tomcat
Comment vérifier
Le moyen le plus simple de vérifier ce que vous
CATALINA_BASE
etCATALINA_HOME
est en exécutantstartup.sh
, par exemple:Vous pouvez également vérifier où les fichiers Tomcat sont installés, par
dpkg
outil comme ci-dessous (Debian / Ubuntu):la source
Je ne peux pas dire que je connais les meilleures pratiques, mais voici mon point de vue.
Utilisez - vous ces variables pour quelque chose?
Personnellement, je n'ai pas eu besoin de changer ni, sous Linux ni sous Windows, dans des environnements variant du développement à la production. À moins que vous ne fassiez quelque chose de particulier qui repose sur eux, il y a de fortes chances que vous puissiez les laisser seuls.
catalina.sh
définit les variables dont Tomcat a besoin pour fonctionner immédiatement. Il dit également queCATALINA_BASE
c'est facultatif:Je suis presque sûr que vous saurez si votre configuration fonctionne ou non lorsque vous démarrez votre serveur.
la source
catalina_home
chemin dans le\bin\catalina.sh
fichier pour les deux instances de tomcat?Le fait de pointer
CATALINA_BASE
vers un répertoire différent deCATALINA_HOME
vous permet de séparer le répertoire de configuration du répertoire binaires.Par défaut,
CATALINA_BASE
(configurations) etCATALINA_HOME
(binaires) pointent vers le même dossier, mais séparer les configurations des binaires peut vous aider à exécuter plusieurs instances de Tomcat côte à côte sans dupliquer les binaires.Il est également utile lorsque vous souhaitez mettre à jour les binaires, sans les modifier, ou avoir besoin de sauvegarder / restaurer vos fichiers de configuration pour Tomcat.
Mise à jour 2018
Il existe un moyen plus simple de définir CATALINA_BASE maintenant avec l'
makebase
utilitaire. J'ai publié un tutoriel qui couvre ce sujet sur http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html avec un tutoriel vidéo sur https://youtu.be / nuugoG5c-7MRéponse originale suite ci-dessous
Pour profiter de cette fonctionnalité, créez simplement le répertoire de configuration et pointez-le avec la
CATALINA_BASE
variable d'environnement. Vous devrez mettre quelques fichiers dans ce répertoire:conf
répertoire du répertoire d'installation d'origine de Tomcat, y compris son contenu, et assurez-vous que Tomcat dispose des autorisations de lecture sur celui-ci. Modifiez les fichiers de configuration selon vos besoins.logs
répertoire s'ilconf/logging.properties
pointe vers${catalina.base}/logs
et assurez-vous que Tomcat dispose des autorisations de lecture / écriture sur celui-ci.temp
répertoire si vous ne remplacez pas la valeur par défaut de$CATALINA_TMPDIR
laquelle pointe${CATALINA_BASE}/temp
et assurez-vous que Tomcat dispose des autorisations d'écriture sur celui-ci.work
répertoire dont la valeur par défaut est${CATALINA_BASE}/work
et assurez-vous que Tomcat dispose des droits d'écriture sur celui-ci.la source
CATALINA_BASE est facultatif.
Toutefois, dans les scénarios suivants, il est utile de configurer CATALINA_BASE qui est distinct de CATALINA_HOME.
Lorsque plusieurs instances de tomcat s'exécutent sur le même hôte
Séparation des préoccupations (responsabilité unique)
la source
C'est le dossier parent de bin qui contient le fichier tomcat.exe:
CATALINA_BASE
est le même queCATALINA_HOME
.la source