Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Espero que el artículo pueda darte inspiración e inspiración ~
Si cree que el artículo le resulta útil,Me gusta+Seguir+Recoger Por favor apoye al blogger ~
Tomcat sigue activo en la vida diaria de los desarrolladores, pero ¿tenemos un conocimiento más profundo de él o basta con saber cómo instalarlo, configurarlo e iniciarlo? Este artículo me sirve como resumen y registro. Espero que haya algo que necesites;
Teniendo en cuenta los factores ambientales, todos deben comparar y analizar adecuadamente su propio entorno de software y hardware. Lea atentamente el entorno de hardware y software.
Windows 11 专业版
herramientas de desarrollo:Tomcat 9.0
La estructura del directorio de archivos se divide principalmente en: bin, conf, lib, logs, temp, webapps, work. La estructura del directorio de archivos en Tomcat es relativamente clara y cada directorio tiene el suyo.
特定的功能
y用途
;
El directorio bin almacena los archivos de script de inicio y apagado de Tomcat. Aquí hay varios;
重要的文件
Debemos saberlo;
parastartup
yshutdown
Debe estar muy familiarizado con él. Debemos usarlo todos los días para iniciar y cerrar rápidamente el servidor Tomcat. En cuanto al sufijo bat, depende del tipo de sistema operativo.
acerca deCatalina
El archivo también es de Tomcat.启动脚本
,ystartup
La principal diferencia es que este último专注启动
, mientras que el primero todavía puede pasar配置参数
para lograr otros fines;
Por ejemplo, aquí uso catalina para iniciar Tomcat, haré esto: entercatalina.bat start
(sistema de ventanas)
aquí estátomcat的bin目录
Ejecutado bajo, si lo ha configurado环境变量
, entonces puedes realizar esta operación en cualquier ubicación de manera similar, también podemos usar;catalina.bat stop
detener el servicio;
Entonces, ¿cómo configurar los parámetros?
El método habitual es configurar los parámetros relevantes modificando el archivo catalina, y la configuración de parámetros más común que usamos es JVM y otro contenido relacionado, por ejemplo, en el archivo catalina, aquí;
-Xms512m
ya configuradoJVM的初始堆内存
es 512 MB,-Xmx1024m
ya configurado最大堆内存
es 1024 MB,-XX:+UseG1GC
ActivadoG1垃圾回收器
,-Duser.timezone=Asia/Shanghai
ya configuradoJVM的时区
Después de la modificación, reinicie Tomcat para que la configuración surta efecto. Aquí hay una comparación de la diferencia antes y después de la configuración;
El programa se inicia normalmente y podemos ver la información de los parámetros que configuramos en la consola;
需要注意的是
, en situaciones reales no不建议直接在catalina中修改
, lo cual no es amigable para la actualización y mantenimiento de nuestro servicio Tomcat, por lo que recomendamos通过setenv配置文件
Para configurar parámetros; ¿por qué setenv? Echemos un vistazo al archivo de configuración de Catalina. Este párrafo nos dice que el script juzgará cuando se inicie. Si este archivo existe, lo llamaremos automáticamente. Este archivo generalmente no existe en el directorio Tomcat actual. para crear uno manualmente nosotros mismos.
Después de crear setenv (setenv.bat en Windows, setenv.sh en mac/linux), agregue configuraciones de acuerdo con los diferentes sistemas. Tenga en cuenta que la sintaxis será ligeramente diferente;
// 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
archivo de servicio, solo vemos este archivo en Windows, generalmente se usa para registrar el servicio Tomcat como un servicio del sistema, el uso principal es ingresar al directorio bin y ejecutar service.bat install + nombre de servicio personalizado;
Luego podemos ver en el servicio de Windows que no se inicia en este momento. Puede hacer clic para iniciar o reiniciar la computadora. Se iniciará automáticamente con el próximo reinicio de la computadora;
El directorio conf almacena varios archivos de configuración global del servidor Tomcat.
En el archivo de configuración server.xml de Apache Tomcat, puede配置多个端口
, pero los más comunes incluyenHTTP服务的端口
(El valor predeterminado es 8080),AJP服务的端口
(el valor predeterminado es 8009), ySSL/TLS(即HTTPS)的端口
(Si está habilitado, el valor predeterminado puede ser 8443, pero depende de la configuración específica)
【1】puerto del conector http
El conector HTTP se utiliza para manejar las solicitudes HTTP que llegan a Tomcat. De forma predeterminada, Tomcat escucha en el puerto 8080. Puede cambiar este puerto modificando el atributo de puerto de la etiqueta.
【2】Puerto del conector AJP
El conector AJP (Protocolo Apache JServ) se utiliza para la comunicación entre Tomcat y el servidor HTTP Apache, especialmente cuando se utiliza el módulo mod_jk. De forma predeterminada, Tomcat escucha en el puerto 8009.
AJP目前我们其实不怎么使用,因为nginx已经可以替代它;它一开始是默认注释的,根据自己需要来开启
【3】Puerto conector SSL/TLS (HTTPS)
Si planea que Tomcat maneje las solicitudes HTTPS, debe configurar un conector SSL/TLS.Esto implica especificar información como el almacén de claves (keystore) y la contraseña del certificado SSL.
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改
En el directorio de instalación de Tomcatconf目录
medioweb.xml文件
Sí全局配置文件
, que define el servlet predeterminado en todo el servidor Tomcat y la asignación de tipos MIME, etc. Por lo general, los desarrolladores no necesitan modificar con frecuencia este archivo web.xml global, a menos que necesite agregar mapeo de servlet global, filtro (Filtro), oyente (Listener), etc. a todo el servidor Tomcat;
一些配置是可以通过注解(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>
Al editar este archivo, puede definir el nivel de registro, el formato, la ubicación de salida, etc. Esto es útil para monitorear y depurar servidores Tomcat y sus aplicaciones implementadas.
# 设置日志的根级别和处理器
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
Función: almacenar los archivos de biblioteca (archivos JAR) necesarios para ejecutar Tomcat.
Nota: Aunque algunas versiones antiguas de Tomcat o configuraciones específicas pueden almacenar archivos JAR en otros directorios como common/lib, server/lib oshared/lib, las versiones modernas de Tomcat prefieren almacenar los archivos de la biblioteca principal en el directorio lib.
Función: almacenar los archivos de registro cuando se ejecuta Tomcat.
Contenido: incluye diversa información de registro durante los procesos de inicio, ejecución y apagado de Tomcat, como catalina.out, localhost.log, etc.
这里catalina.2024-7-10是通过日志滚动策略生成的,用于记录Catalina容器的日常运行日志;
locahost.2024-7-10,localhost_access_log.2024-7-10分别记录了应用程序的日志信息和访问日志
;
host-manager日志是监控和管理Tomcat服务器上虚拟主机的重要工具。通过分析这些日志文件,管理员可以了解虚拟主机的使用情况,以及是否存在潜在的问题或安全风险
Por lo general, cuando revisamos los registros diariamente, no elegimos Catalina.log/Catalina.out/appName.log, etc.;
Función: directorio de publicación web principal de Tomcat, utilizado para almacenar aplicaciones web.
Contenido: de forma predeterminada, la aplicación se puede publicar colocando los archivos de la aplicación web en este directorio. Tomcat escaneará automáticamente las aplicaciones en este directorio y las implementará.
Las características de las aplicaciones web son:
【1】Implementación automática: Tomcat escaneará periódicamente todos los contenidos en el directorio de aplicaciones web.cuando colocas un WAR 文件
(por ejemplo, myapp.war) cuando se coloca en el directorio webapps, Tomcat detectará automáticamente este archivo y尝试部署它
.Si el archivo es un paquete WAR, Tomcat primero descomprimirá el archivo y luego implementará la aplicación de acuerdo con la estructura del directorio descomprimido.
【2】Administración: al operar directamente los archivos en el directorio de aplicaciones web, puede administrar fácilmente aplicaciones web en Tomcat.Por ejemplo, puedes pasar删除目录来卸载应用程序
, o vía替换 WAR 文件
Venirrenovaraplicación.
【3】Ruta de implementación personalizada:Tomcat 默认将 Web 应用程序部署在 webapps 目录下
, pero también puede modificar el archivo de configuración de Tomcat (como server.xml
) para especificar otro directorio como ruta de implementación de la aplicación. Permítanme mencionar esto, es raro ver definido otro camino pero no es imposible;
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- 配置一个Context来指定其他目录为应用程序的部署路径 -->
<Context path="/myapp" docBase="/path/to/your/application" reloadable="true">
<!-- 这里可以添加更多的Context配置 -->
</Context>
<!-- 其他Host配置 -->
</Host>
Función: almacenar los archivos de clase generados después de la compilación JSP y los archivos temporales de Servlet.
Nota: borre el contenido de este directorio y reinicie Tomcat para borrar el caché compilado de JSP y Servlet.
简单的来说,work的作用就是JSP编译和缓存来提高tomcat的性能,主要体现在响应速度上;
注意需要定期清理该目录,长期tomcat的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;
Función: Almacenar archivos temporales generados durante la ejecución de Tomcat.
Nota: Estos archivos temporales se utilizan generalmente para admitir operaciones internas de Tomcat, como administración de sesiones, carga de archivos, etc.
这个目录有点类似于work目录,也是通过缓存临时文件来提高应用程序的性能
[1] Después de realizar configuraciones relevantes, a menudo es necesario reiniciar Tomcat para que surta efecto;
[2] Aunque los directorios temporal y de trabajo son archivos de caché y archivos temporales, aún necesita hacer una copia de seguridad al borrarlos y confirmar si estos archivos todavía están ocupados por otros procesos de la aplicación;
[3] Cuando se ejecuta el apagado, no se detiene inmediatamente, sino que intenta cerrar Tomcat correctamente. Este proceso puede tardar un poco en detenerse dependiendo de la situación. Puede juzgar si Tomcat se ha cerrado comprobando el estado del puerto de Tomcat; ;