2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Ich hoffe, der Artikel kann Ihnen Inspiration und Inspiration geben ~
Wenn Sie der Meinung sind, dass der Artikel für Sie hilfreich ist,Liken+Folgen+Sammeln Bitte unterstützen Sie den Blogger~
Tomcat ist immer noch im täglichen Leben der Entwickler aktiv, aber haben wir ein tieferes Verständnis davon oder reicht es aus, nur zu wissen, wie man es installiert, konfiguriert und startet? Dieser Artikel dient als meine Zusammenfassung und Aufzeichnung. Ich hoffe, dass Sie etwas brauchen.
Unter Berücksichtigung von Umweltfaktoren sollte jeder seine eigene Software- und Hardwareumgebung ordnungsgemäß vergleichen und analysieren ~ Bitte lesen Sie die Hardware- und Softwareumgebung sorgfältig durch.
Windows 11 专业版
Entwicklungswerkzeuge:Tomcat 9.0
Die Dateiverzeichnisstruktur ist hauptsächlich unterteilt in: bin, conf, lib, logs, temp, webapps, work. Die Dateiverzeichnisstruktur in Tomcat ist relativ klar und jedes Verzeichnis hat sein eigenes
特定的功能
Und用途
;
Im bin-Verzeichnis werden mehrere Skriptdateien zum Starten und Herunterfahren von Tomcat gespeichert
重要的文件
Wir müssen es wissen;
fürstartup
Undshutdown
Sie müssen damit sehr vertraut sein. Wir müssen es jeden Tag verwenden, um den Tomcat-Server schnell zu starten und herunterzufahren. Was das Suffix bat betrifft, hängt es von Ihrem Betriebssystemtyp ab.
umCatalina
Die Datei stammt ebenfalls von Tomcat启动脚本
,Undstartup
Der Hauptunterschied besteht darin, dass letzteres专注启动
, während ersterer noch passieren kann配置参数
um andere Zwecke zu erreichen;
Hier verwende ich beispielsweise Catalina, um Tomcat zu starten. Ich werde Folgendes tun: Eingabecatalina.bat start
(Windows-System)
hier isttomcat的bin目录
Wird unter ausgeführt, sofern Sie dies konfiguriert haben环境变量
, dann können Sie diesen Vorgang an jedem beliebigen Ort durchführen; in ähnlicher Weise können wir ihn auch verwendencatalina.bat stop
den Dienst beenden;
Wie konfiguriere ich also Parameter?
Der übliche Ansatz besteht darin, die relevanten Parameter durch Ändern der Catalina-Datei zu konfigurieren. Die häufigste Parameterkonfiguration, die wir verwenden, ist JVM und andere verwandte Inhalte, zum Beispiel in der Catalina-Datei, hier I
-Xms512m
bereits eingerichtetJVM的初始堆内存
ist 512 MB,-Xmx1024m
bereits eingerichtet最大堆内存
ist 1024 MB,-XX:+UseG1GC
ErmöglichtG1垃圾回收器
,-Duser.timezone=Asia/Shanghai
bereits eingerichtetJVM的时区
Starten Sie Tomcat nach der Änderung neu, damit die Konfiguration wirksam wird. Hier finden Sie einen Vergleich der Unterschiede vor und nach der Konfiguration.
Das Programm startet normal und wir können die von uns konfigurierten Parameterinformationen auf der Konsole sehen;
需要注意的是
, in tatsächlichen Situationen tun wir das nicht不建议直接在catalina中修改
Dies ist für die Aktualisierung und Wartung unseres Tomcat-Dienstes nicht geeignet und wird daher empfohlen通过setenv配置文件
Um Parameter zu konfigurieren; warum setenv? Werfen wir einen Blick auf die Konfigurationsdatei von Catalina. In diesem Absatz erfahren Sie, dass das Skript beim Start eine Beurteilung vornimmt. Diese Datei ist normalerweise nicht im aktuellen Tomcat-Verzeichnis vorhanden um selbst eines manuell zu erstellen.
Nachdem Sie setenv (setenv.bat unter Windows, setenv.sh unter Mac/Linux) erstellt haben, fügen Sie darin je nach System Konfigurationen hinzu. Bitte beachten Sie, dass die Syntax leicht unterschiedlich sein wird;
// mac或linux
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai"
// windows
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai
Servicedatei, wir sehen diese Datei nur in Windows. Sie wird normalerweise verwendet, um den Tomcat-Dienst als Systemdienst zu registrieren. Die Hauptverwendung besteht darin, das bin-Verzeichnis einzugeben und service.bat install + benutzerdefinierten Dienstnamen auszuführen.
Dann können wir im Windows-Dienst sehen, dass er zu diesem Zeitpunkt nicht gestartet ist. Sie können auf klicken, um den Computer zu starten oder neu zu starten. Er wird beim nächsten Neustart des Computers automatisch gestartet.
Im Verzeichnis conf werden verschiedene globale Konfigurationsdateien des Tomcat-Servers gespeichert.
In der Konfigurationsdatei server.xml von Apache Tomcat können Sie dies tun配置多个端口
, aber die häufigsten davon sindHTTP服务的端口
(Standard ist 8080),AJP服务的端口
(Standard ist 8009) undSSL/TLS(即HTTPS)的端口
(Wenn aktiviert, ist der Standardwert möglicherweise 8443, dies hängt jedoch von der spezifischen Konfiguration ab.)
【1】HTTP-Anschluss
Der HTTP-Connector wird zur Verarbeitung von HTTP-Anfragen verwendet, die in Tomcat eingehen. Standardmäßig lauscht Tomcat auf Port 8080. Sie können diesen Port ändern, indem Sie das Portattribut des Labels ändern.
【2】AJP-Anschluss
Der AJP-Connector (Apache JServ Protocol) wird für die Kommunikation zwischen Tomcat und dem Apache-HTTP-Server verwendet, insbesondere bei Verwendung des Moduls mod_jk. Standardmäßig lauscht Tomcat auf Port 8009.
AJP目前我们其实不怎么使用,因为nginx已经可以替代它;它一开始是默认注释的,根据自己需要来开启
【3】SSL/TLS (HTTPS)-Anschluss
Wenn Tomcat HTTPS-Anfragen verarbeiten soll, müssen Sie einen SSL/TLS-Connector konfigurieren.Dabei müssen Informationen wie der Schlüsselspeicher (Keystore) und das Passwort des SSL-Zertifikats angegeben werden
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改
Im Tomcat-Installationsverzeichnisconf目录
Mitteweb.xml文件
Ja全局配置文件
, das die serverweite Tomcat-Standard-Servlet- und MIME-Typzuordnung usw. definiert. Normalerweise muss diese globale web.xml-Datei nicht häufig von Entwicklern geändert werden, es sei denn, Sie müssen dem gesamten Tomcat-Server eine globale Servlet-Zuordnung, einen Filter (Filter), einen Listener (Listener) usw. hinzufügen.
一些配置是可以通过注解(Annotations)来完成,这减少了对web.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>
Durch Bearbeiten dieser Datei können Sie die Protokollebene, das Format, den Ausgabeort usw. definieren. Dies ist nützlich zum Überwachen und Debuggen von Tomcat-Servern und ihren bereitgestellten Anwendungen.
# 设置日志的根级别和处理器
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
Funktion: Speichern Sie die Bibliotheksdateien (JAR-Dateien), die zum Ausführen von Tomcat erforderlich sind.
Hinweis: Obwohl einige alte Versionen von Tomcat oder bestimmte Konfigurationen JAR-Dateien möglicherweise in anderen Verzeichnissen wie common/lib, server/lib oder shared/lib speichern, bevorzugen moderne Versionen von Tomcat die Speicherung von Kernbibliotheksdateien im lib-Verzeichnis.
Funktion: Speichern Sie die Protokolldateien, wenn Tomcat ausgeführt wird.
Inhalt: einschließlich verschiedener Protokollinformationen während des Startens, Ausführens und Herunterfahrens von Tomcat, z. B. catalina.out, localhost.log usw.
这里catalina.2024-7-10是通过日志滚动策略生成的,用于记录Catalina容器的日常运行日志;
locahost.2024-7-10,localhost_access_log.2024-7-10分别记录了应用程序的日志信息和访问日志
;
host-manager日志是监控和管理Tomcat服务器上虚拟主机的重要工具。通过分析这些日志文件,管理员可以了解虚拟主机的使用情况,以及是否存在潜在的问题或安全风险
Wenn wir Protokolle täglich überprüfen, wählen wir normalerweise nicht Catalina.log/Catalina.out/appName.log usw. aus;
Funktion: Das Hauptverzeichnis für die Webveröffentlichung von Tomcat, das zum Speichern von Webanwendungen verwendet wird.
Inhalt: Standardmäßig kann die Anwendung veröffentlicht werden, indem die Webanwendungsdateien in diesem Verzeichnis abgelegt werden. Tomcat scannt die Anwendungen in diesem Verzeichnis automatisch und stellt sie bereit.
Merkmale von Webapps sind:
【1】Automatische Bereitstellung: Tomcat scannt regelmäßig alle Inhalte im Webapps-Verzeichnis.wenn Sie a platzieren WAR 文件
(z. B. myapp.war) Wenn Tomcat diese Datei im Webapps-Verzeichnis ablegt, erkennt sie sie automatisch und尝试部署它
.Wenn es sich bei der Datei um ein WAR-Paket handelt, dekomprimiert Tomcat zunächst die Datei und stellt dann die Anwendung entsprechend der dekomprimierten Verzeichnisstruktur bereit.
【2】Verwaltung: Durch direktes Bearbeiten der Dateien im Webapps-Verzeichnis können Sie Webanwendungen auf Tomcat einfach verwalten.Sie können zum Beispiel bestehen删除目录来卸载应用程序
, oder über替换 WAR 文件
KommenerneuernApp.
【3】Benutzerdefinierter Bereitstellungspfad:Tomcat 默认将 Web 应用程序部署在 webapps 目录下
, aber Sie können auch die Tomcat-Konfigurationsdatei ändern (z. B server.xml
), um ein anderes Verzeichnis als Bereitstellungspfad der Anwendung anzugeben. Lassen Sie mich das erwähnen: Es kommt selten vor, dass ein anderer Weg definiert wird, aber es ist nicht unmöglich;
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- 配置一个Context来指定其他目录为应用程序的部署路径 -->
<Context path="/myapp" docBase="/path/to/your/application" reloadable="true">
<!-- 这里可以添加更多的Context配置 -->
</Context>
<!-- 其他Host配置 -->
</Host>
Funktion: Speichern Sie die nach der JSP-Kompilierung generierten Klassendateien und die temporären Dateien von Servlet.
Hinweis: Löschen Sie den Inhalt dieses Verzeichnisses und starten Sie Tomcat neu, um den kompilierten Cache von JSP und Servlet zu löschen.
简单的来说,work的作用就是JSP编译和缓存来提高tomcat的性能,主要体现在响应速度上;
注意需要定期清理该目录,长期tomcat的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;
Funktion: Speichern Sie temporäre Dateien, die während der Ausführung von Tomcat generiert werden.
Hinweis: Diese temporären Dateien werden normalerweise zur Unterstützung interner Vorgänge von Tomcat verwendet, z. B. Sitzungsverwaltung, Datei-Upload usw.
这个目录有点类似于work目录,也是通过缓存临时文件来提高应用程序的性能
[1] Nachdem Sie relevante Konfigurationen vorgenommen haben, müssen Sie Tomcat häufig neu starten, damit es wirksam wird.
[2] Obwohl es sich bei den temporären und Arbeitsverzeichnissen um Cache-Dateien und temporäre Dateien handelt, müssen Sie beim Löschen dennoch eine Sicherungskopie erstellen und überprüfen, ob diese Dateien noch von anderen Anwendungsprozessen belegt sind.
[3] Wenn das Herunterfahren ausgeführt wird, wird Tomcat nicht sofort gestoppt, sondern es kann je nach Situation eine Weile dauern, bis dieser Vorgang beendet wird. Sie können anhand des Tomcat-Portstatus beurteilen, ob Tomcat heruntergefahren wurde ;