Partage de technologie

[Explication détaillée de l'annuaire Tomcat] Ce que vous devez savoir d'autre sur Tomcat

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

J'espère que l'article pourra vous inspirer et vous inspirer ~
Si vous pensez que l'article vous est utile,J'aime + Suivre + Collecter S'il vous plaît, soutenez le blogueur ~

Notes d'ouverture

Tomcat est toujours actif dans la vie quotidienne des développeurs, mais en avons-nous une compréhension plus approfondie, ou suffit-il simplement de savoir comment l'installer, le configurer et le démarrer ? Cet article me sert de résumé et d’enregistrement. J’espère que vous avez besoin de quelque chose ;

Insérer la description de l'image ici

1. Description de l'environnement de base

Compte tenu des facteurs environnementaux, chacun doit comparer et analyser correctement son propre environnement logiciel et matériel. ~ Veuillez lire attentivement l'environnement matériel et logiciel.

1.1 Environnement matériel

Windows 11 专业版

1.2 Environnement logiciel

outils de développement:Tomcat 9.0

2. Structure des fichiers Tomcat

La structure des répertoires de fichiers est principalement divisée en : bin, conf, lib, logs, temp, webapps, work La structure des répertoires de fichiers dans Tomcat est relativement claire et chaque répertoire a le sien.特定的功能et用途

Insérer la description de l'image ici

Répertoire bin 2.1

Le répertoire bin stocke les fichiers de script de démarrage et d'arrêt de Tomcat, en voici plusieurs ;重要的文件Nous devons le savoir ;

  • Fichiers se terminant par .sh : scripts de démarrage et d'arrêt sur les plateformes Linux ou Mac.
  • Fichiers se terminant par .bat : scripts de démarrage et d'arrêt sur les plateformes Windows.
  • catalina.sh : le script de démarrage principal de Tomcat, où les paramètres JVM peuvent être définis.
  • startup.sh et shutdown.sh : utilisés respectivement pour démarrer et arrêter le serveur Tomcat.
  • service.bat : utilisé pour enregistrer le service Tomcat dans Windows.

2.1.1 démarrage et arrêt

pourstartupetshutdown Vous devez le connaître très bien. Nous devons l'utiliser tous les jours pour démarrer et arrêter rapidement le serveur Tomcat. Quant au suffixe bat, il dépend du type de votre système d'exploitation.

2.1.2 Catalina

à propos de deCatalinaLe fichier vient également de Tomcat启动脚本,etstartupLa principale différence est que ce dernier专注启动, alors que le premier peut encore passer配置参数pour atteindre d'autres objectifs ;

Par exemple, ici j'utilise catalina pour démarrer Tomcat, je vais faire ceci : entrezcatalina.bat start (système Windows)
Insérer la description de l'image ici
Voicitomcat的bin目录Exécuté sous, si vous avez configuré环境变量, vous pouvez alors effectuer cette opération à n'importe quel endroit de la même manière, nous pouvons également utiliser ;catalina.bat stoparrêter le service ;

Alors comment configurer les paramètres ?

L'approche habituelle consiste à configurer les paramètres pertinents en modifiant le fichier catalina, et la configuration des paramètres la plus courante que nous utilisons est JVM et d'autres contenus associés, par exemple, dans le fichier catalina, ici je ;-Xms512mdéjà configuréJVM的初始堆内存est de 512 Mo,-Xmx1024mdéjà configuré最大堆内存est de 1024 Mo,-XX:+UseG1GCActivéG1垃圾回收器-Duser.timezone=Asia/Shanghaidéjà configuréJVM的时区

Insérer la description de l'image ici
Après modification, redémarrez Tomcat pour que la configuration prenne effet ; voici une comparaison de la différence avant et après la configuration ;
Insérer la description de l'image ici
Insérer la description de l'image ici
Le programme démarre normalement et nous pouvons voir les informations sur les paramètres que nous avons configurés sur la console ;

需要注意的是, dans les situations réelles, nous ne le faisons pas不建议直接在catalina中修改, ce qui n'est pas favorable à la mise à niveau et à la maintenance de notre service Tomcat, nous vous recommandons donc通过setenv配置文件 Pour configurer les paramètres ; pourquoi setenv ? Jetons un coup d'œil au fichier de configuration de Catalina. Ce paragraphe nous indique que le script fera un jugement au démarrage. Si ce fichier existe, il sera automatiquement appelé. Ce fichier n'existe généralement pas dans le répertoire Tomcat actuel, et nous en avons besoin. pour en créer un manuellement nous-mêmes.
Insérer la description de l'image ici
Après avoir créé setenv (setenv.bat sous Windows, setenv.sh sous mac/linux), ajoutez-y des configurations en fonction des différents systèmes ;

// mac或linux
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai"
  • 1
  • 2
// windows
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai
  • 1
  • 2

2.1.3 service.bat (Windows)

fichier de service, nous ne voyons ce fichier que sous Windows, il est généralement utilisé pour enregistrer le service Tomcat en tant que service système ; l'utilisation principale est d'entrer dans le répertoire bin et d'exécuter service.bat install + nom du service personnalisé ;
Insérer la description de l'image ici
Insérer la description de l'image ici
Ensuite, nous pouvons voir dans le service Windows qu'il n'est pas démarré pour le moment. Vous pouvez cliquer pour démarrer ou redémarrer l'ordinateur. Il démarrera automatiquement au prochain redémarrage de l'ordinateur.

2.2 répertoire de configuration

Le répertoire conf stocke divers fichiers de configuration globale du serveur Tomcat.

  • server.xml : fichier de configuration principal de Tomcat, comprenant les informations de configuration du service, du connecteur, du moteur, de l'hôte et d'autres composants.
  • web.xml : fichier de configuration qui suit la norme de spécification des servlets et est utilisé pour configurer les servlets et fournir des informations de configuration par défaut pour toutes les applications Web.
  • tomcat-users.xml : rôles, utilisateurs, mots de passe et autres informations associés utilisés dans l'authentification du domaine.
  • context.xml : informations de configuration par défaut pour tous les hôtes.
  • catalina.policy : fichier de configuration de la politique de sécurité liée à Java.
  • catalina.properties : définition du package interne Tomcat et fichiers de contrôle d'accès.
  • logging.properties : informations de configuration liées à l'enregistreur Tomcat.

2.2.1 serveur.xml

Dans le fichier de configuration server.xml d'Apache Tomcat, vous pouvez配置多个端口, mais les plus courants d'entre eux incluentHTTP服务的端口(La valeur par défaut est 8080),AJP服务的端口(la valeur par défaut est 8009), etSSL/TLS(即HTTPS)的端口(Si activé, la valeur par défaut peut être 8443, mais cela dépend de la configuration spécifique)
【1】port de connecteur http

Le connecteur HTTP est utilisé pour gérer les requêtes HTTP entrant dans Tomcat. Par défaut, Tomcat écoute sur le port 8080. Vous pouvez changer ce port en modifiant l'attribut de port de l'étiquette.

Insérer la description de l'image ici
【2】Port de connecteur AJP

Le connecteur AJP (Apache JServ Protocol) est utilisé pour la communication entre Tomcat et le serveur HTTP Apache, notamment lors de l'utilisation du module mod_jk. Par défaut, Tomcat écoute sur le port 8009.

AJP目前我们其实不怎么使用,因为nginx已经可以替代它;它一开始是默认注释的,根据自己需要来开启

【3】Port de connecteur SSL/TLS (HTTPS)

Si vous prévoyez que Tomcat gère les requêtes HTTPS, vous devez configurer un connecteur SSL/TLS.Cela implique de spécifier des informations telles que le keystore (keystore) et le mot de passe du certificat SSL.

Insérer la description de l'image ici
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改

2.2.2 web.xml (peu modifié)

Dans le répertoire d'installation de Tomcatconf目录milieuweb.xml文件Oui全局配置文件 , qui définit le mappage par défaut des servlets et des types MIME à l'échelle du serveur Tomcat, etc. Habituellement, ce fichier web.xml global n'a pas besoin d'être modifié fréquemment par les développeurs, sauf si vous devez ajouter un mappage global de servlet, un filtre (Filter), un écouteur (Listener), etc. à l'ensemble du serveur Tomcat ;

一些配置是可以通过注解(Annotations)来完成,这减少了对web.xml文件的依赖;

2.2.3 tomcat-users.xml

<tomcat-users xmlns="http://tomcat.apache.org/xml"  
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"  
              version="1.0">  
  
  <!--  
    注意:默认情况下,Tomcat Manager是禁用的,并且没有设置任何用户。  
    要启用Tomcat Manager,并为其设置用户,你需要取消以下注释,  
    并根据需要修改用户名、密码和角色。  
  -->  
  
  <role rolename="manager-gui"/>  
  <role rolename="manager-script"/>  
  <user username="tomcat" password="tomcat" roles="manager-gui"/>  
  <user username="admin" password="admin123" roles="manager-script"/>  
  
</tomcat-users>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2.2.4 propriétés de journalisation

En éditant ce fichier, vous pouvez définir le niveau de journalisation, le format, l'emplacement de sortie, etc. Ceci est utile pour surveiller et déboguer les serveurs Tomcat et leurs applications déployées.

# 设置日志的根级别和处理器  
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler  
  
# 设置根日志级别  
.level = INFO  
  
# 设置特定类别的日志级别  
org.apache.catalina.level = INFO  
org.apache.catalina.startup.level = FINE  
org.apache.catalina.session.level = FINE  
org.apache.catalina.util.lifecycle.level = FINE  
  
# 为不同的处理器(文件处理器和控制台处理器)设置格式和文件路径  
# 文件处理器示例  
1catalina.org.apache.juli.FileHandler.level = FINE  
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
1catalina.org.apache.juli.FileHandler.prefix = catalina.  
  
2localhost.org.apache.juli.FileHandler.level = FINE  
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
2localhost.org.apache.juli.FileHandler.prefix = localhost.  
  
3manager.org.apache.juli.FileHandler.level = FINE  
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
3manager.org.apache.juli.FileHandler.prefix = manager.  
  
4host-manager.org.apache.juli.FileHandler.level = FINE  
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.  
  
# 控制台处理器  
java.util.logging.ConsoleHandler.level = FINE  
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter  
  
# 设置日志文件的编码  
org.apache.juli.FileHandler.encoding = UTF-8  
  
# Java 类的日志级别  
org.apache.jasper.level = INFO  
org.apache.coyote.level = INFO
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

Répertoire 2.3 lib (essentiellement inchangé)

Fonction : Stockez les fichiers de bibliothèque (fichiers JAR) requis pour exécuter Tomcat.
Remarque : Bien que certaines anciennes versions de Tomcat ou configurations spécifiques puissent stocker des fichiers JAR dans d'autres répertoires tels que common/lib, server/lib ou shared/lib, les versions modernes de Tomcat préfèrent stocker les fichiers de bibliothèque principale dans le répertoire lib.

2.4 Répertoire des journaux

Fonction : stocke les fichiers journaux lorsque Tomcat est exécuté.
Contenu : y compris diverses informations de journal pendant les processus de démarrage, d'exécution et d'arrêt de Tomcat, tels que catalina.out, localhost.log, etc.

Insérer la description de l'image ici
这里catalina.2024-7-10是通过日志滚动策略生成的,用于记录Catalina容器的日常运行日志;

locahost.2024-7-10,localhost_access_log.2024-7-10分别记录了应用程序的日志信息和访问日志;

host-manager日志是监控和管理Tomcat服务器上虚拟主机的重要工具。通过分析这些日志文件,管理员可以了解虚拟主机的使用情况,以及是否存在潜在的问题或安全风险

Habituellement, lorsque nous vérifions les journaux quotidiennement, nous ne choisissons pas Catalina.log/Catalina.out/appName.log, etc. ;

2.5 Répertoire des applications Web

Fonction : répertoire de publication Web principal de Tomcat, utilisé pour stocker les applications Web.
Contenu : Par défaut, l'application peut être publiée en plaçant les fichiers de l'application web dans ce répertoire. Tomcat analysera automatiquement les applications de ce répertoire et les déploiera.

Les caractéristiques des webapps sont :
【1】Déploiement automatique : Tomcat analysera régulièrement tous les contenus du répertoire webapps.lorsque vous placez un WAR 文件(par exemple, myapp.war) lorsqu'il est placé dans le répertoire webapps, Tomcat détectera automatiquement ce fichier et尝试部署它 .Si le fichier est un package WAR, Tomcat décompressera d'abord le fichier, puis déploiera l'application selon la structure de répertoires décompressée.
【2】Gestion : En exploitant directement les fichiers du répertoire webapps, vous pouvez facilement gérer les applications Web sur Tomcat.Par exemple, vous pouvez passer删除目录来卸载应用程序, ou via替换 WAR 文件Viensrenouvelerapplication.

【3】Chemin de déploiement personnalisé :Tomcat 默认将 Web 应用程序部署在 webapps 目录下, mais vous pouvez également modifier le fichier de configuration Tomcat (comme server.xml ) pour spécifier un autre répertoire comme chemin de déploiement de l'application. Permettez-moi de le mentionner, il est rare de voir une autre voie définie mais ce n'est pas impossible ;

<Host name="localhost"  appBase="webapps"  
        unpackWARs="true" autoDeploy="true">  
  
    <!-- 配置一个Context来指定其他目录为应用程序的部署路径 -->  
    <Context path="/myapp" docBase="/path/to/your/application" reloadable="true">  
        <!-- 这里可以添加更多的Context配置 -->  
    </Context>  
  
    <!-- 其他Host配置 -->  
  
</Host>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.6 répertoire de travail

Fonction : Stocke les fichiers de classe générés après compilation JSP et les fichiers temporaires du Servlet.
Remarque : Effacez le contenu de ce répertoire et redémarrez Tomcat pour vider le cache compilé de JSP et du Servlet.

简单的来说,work的作用就是JSP编译和缓存来提高tomcat的性能,主要体现在响应速度上;
注意需要定期清理该目录,长期tomcat的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;

2.7 répertoire temporaire

Fonction : Stocker les fichiers temporaires générés lors de l'exécution de Tomcat.
Remarque : Ces fichiers temporaires sont généralement utilisés pour prendre en charge les opérations internes de Tomcat, telles que la gestion de session, le téléchargement de fichiers, etc.

这个目录有点类似于work目录,也是通过缓存临时文件来提高应用程序的性能

3. Enfin

[1] Après avoir effectué les configurations pertinentes, vous devez souvent redémarrer Tomcat pour prendre effet ;

[2] Bien que les répertoires temp et work soient des fichiers cache et des fichiers temporaires, vous devez toujours effectuer une sauvegarde lors de leur effacement et confirmer si ces fichiers sont toujours occupés par d'autres processus d'application ;

[3] Lorsque l'arrêt est exécuté, il ne s'arrête pas immédiatement, mais tente d'arrêter Tomcat correctement. Ce processus peut prendre un certain temps pour s'arrêter en fonction de la situation. Vous pouvez déterminer si Tomcat a été arrêté en vérifiant l'état du port Tomcat. ;