minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Espero que o artigo possa lhe dar inspiração e inspiração ~
Se você acha que o artigo é útil para você,Curtir + Seguir + Coletar Por favor, apoie o blogueiro ~
O Tomcat ainda está presente no dia a dia dos desenvolvedores, mas será que temos um conhecimento mais profundo sobre ele ou basta apenas saber como instalá-lo, configurá-lo e iniciá-lo? Este artigo serve como meu resumo e registro. Espero que haja algo que você precise;
Considerando os fatores ambientais, todos devem comparar e analisar adequadamente seu próprio ambiente de software e hardware ~ Por favor, leia o ambiente de hardware e software com atenção.
Windows 11 专业版
ferramentas de desenvolvimento:Tomcat 9.0
A estrutura de diretórios de arquivos é dividida principalmente em: bin, conf, lib, logs, temp, webapps, work. A estrutura de diretórios de arquivos no Tomcat é relativamente clara e cada diretório tem sua própria.
特定的功能
e用途
;
O diretório bin armazena arquivos de script de inicialização e desligamento do Tomcat.
重要的文件
Devemos saber;
parastartup
eshutdown
Você deve estar muito familiarizado com ele. Devemos usá-lo todos os dias para iniciar e desligar rapidamente o servidor Tomcat. Quanto ao sufixo bat, depende do tipo de sistema operacional.
sobreCatalina
O arquivo também é do Tomcat启动脚本
,estartup
A principal diferença é que este último专注启动
, enquanto o primeiro ainda pode passar配置参数
para atingir outros fins;
Por exemplo, aqui eu uso catalina para iniciar o Tomcat, farei assim: entercatalina.bat start
(sistema Windows)
aqui estátomcat的bin目录
Executado em, se você configurou环境变量
, então você pode realizar esta operação em qualquer local da mesma forma, também podemos usar;catalina.bat stop
interromper o serviço;
Então, como configurar parâmetros?
A abordagem usual é configurar os parâmetros relevantes modificando o arquivo catalina, e a configuração de parâmetros mais comum que usamos é JVM e outros conteúdos relacionados, por exemplo, no arquivo catalina, aqui estou;
-Xms512m
já configuradoJVM的初始堆内存
é 512 MB,-Xmx1024m
já configurado最大堆内存
é 1024 MB,-XX:+UseG1GC
HabilitadoG1垃圾回收器
,-Duser.timezone=Asia/Shanghai
já configuradoJVM的时区
Após a modificação, reinicie o Tomcat para que a configuração tenha efeito. Aqui está uma comparação da diferença antes e depois da configuração;
O programa inicia normalmente e podemos ver as informações dos parâmetros que configuramos no console;
需要注意的是
, em situações reais não不建议直接在catalina中修改
, o que não é amigável para a atualização e manutenção do nosso serviço Tomcat, por isso recomendamos通过setenv配置文件
Para configurar parâmetros; por que setenv? Vamos dar uma olhada no arquivo de configuração de Catalina. Este parágrafo nos diz que o script fará um julgamento quando for iniciado. Se esse arquivo existir, ele será chamado automaticamente. para criarmos um manualmente.
Depois de criar o setenv (setenv.bat no Windows, setenv.sh no mac/linux), adicione configurações nele de acordo com os diferentes sistemas;
// 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
arquivo de serviço, só vemos esse arquivo no Windows, geralmente é usado para registrar o serviço Tomcat como um serviço do sistema; o uso principal é entrar no diretório bin e executar service.bat install + nome do serviço personalizado;
Então podemos ver no serviço do Windows que ele não foi iniciado neste momento. Você pode clicar para iniciar ou reiniciar o computador. Ele será iniciado automaticamente na próxima reinicialização do computador.
O diretório conf armazena vários arquivos de configuração global do servidor Tomcat.
No arquivo de configuração server.xml do Apache Tomcat, você pode配置多个端口
, mas os mais comuns incluemHTTP服务的端口
(O padrão é 8080),AJP服务的端口
(o padrão é 8009) eSSL/TLS(即HTTPS)的端口
(Se ativado, o padrão pode ser 8443, mas isso depende da configuração específica)
【1】Porta do conector http
O conector HTTP é usado para lidar com solicitações HTTP que chegam ao Tomcat. Por padrão, o Tomcat escuta na porta 8080. Você pode alterar esta porta modificando o atributo de porta do rótulo.
【2】Porta do conector AJP
O conector AJP (Apache JServ Protocol) é usado para comunicação entre o Tomcat e o servidor Apache HTTP, especialmente ao usar o módulo mod_jk. Por padrão, o Tomcat escuta na porta 8009.
AJP目前我们其实不怎么使用,因为nginx已经可以替代它;它一开始是默认注释的,根据自己需要来开启
【3】Porta do conector SSL/TLS (HTTPS)
Se você planeja que o Tomcat lide com solicitações HTTPS, será necessário configurar um conector SSL/TLS.Isso envolve especificar informações como o keystore (keystore) e a senha do certificado SSL
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改
No diretório de instalação do Tomcatconf目录
meioweb.xml文件
sim全局配置文件
, que define o servlet padrão em todo o servidor Tomcat e o mapeamento de tipo MIME, etc. Normalmente, este arquivo web.xml global não precisa ser modificado frequentemente pelos desenvolvedores, a menos que você precise adicionar mapeamento de Servlet global, filtro (Filtro), ouvinte (Listener), etc. a todo o 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>
Ao editar este arquivo, você pode definir o nível de log, formato, local de saída, etc. Isso é útil para monitorar e depurar servidores Tomcat e seus aplicativos implementados.
# 设置日志的根级别和处理器
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
Função: Armazene os arquivos de biblioteca (arquivos JAR) necessários para executar o Tomcat.
Nota: Embora algumas versões antigas do Tomcat ou configurações específicas possam armazenar arquivos JAR em outros diretórios, como common/lib, server/lib ou shared/lib, as versões modernas do Tomcat preferem armazenar arquivos da biblioteca principal no diretório lib.
Função: Armazena os arquivos de log quando o Tomcat é executado.
Conteúdo: incluindo várias informações de log durante os processos de inicialização, execução e desligamento do 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服务器上虚拟主机的重要工具。通过分析这些日志文件,管理员可以了解虚拟主机的使用情况,以及是否存在潜在的问题或安全风险
Normalmente, quando verificamos os logs diariamente, não escolhemos Catalina.log/Catalina.out/appName.log, etc.;
Função: principal diretório de publicação na Web do Tomcat, usado para armazenar aplicativos da Web.
Conteúdo: Por padrão, o aplicativo pode ser publicado colocando os arquivos do aplicativo web neste diretório. O Tomcat verificará automaticamente os aplicativos neste diretório e os implantará.
As características dos aplicativos da web são:
【1】 Implantação automática: o Tomcat verificará regularmente todo o conteúdo do diretório webapps.quando você coloca um WAR 文件
(por exemplo, myapp.war) quando colocado no diretório webapps, o Tomcat detectará automaticamente este arquivo e尝试部署它
.Se o arquivo for um pacote WAR, o Tomcat primeiro descompactará o arquivo e depois implantará o aplicativo de acordo com a estrutura de diretórios descompactada.
【2】Gerenciamento: Ao operar diretamente os arquivos no diretório webapps, você pode gerenciar facilmente aplicativos da Web no Tomcat.Por exemplo, você pode passar删除目录来卸载应用程序
, ou através替换 WAR 文件
Virrenovaraplicativo.
【3】Caminho de implantação personalizado:Tomcat 默认将 Web 应用程序部署在 webapps 目录下
, mas você também pode modificar o arquivo de configuração do Tomcat (como server.xml
) para especificar outro diretório como caminho de implantação do aplicativo. Deixe-me mencionar isto, é raro ver outro caminho definido, mas não é impossível;
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- 配置一个Context来指定其他目录为应用程序的部署路径 -->
<Context path="/myapp" docBase="/path/to/your/application" reloadable="true">
<!-- 这里可以添加更多的Context配置 -->
</Context>
<!-- 其他Host配置 -->
</Host>
Função: Armazenar os arquivos de classe gerados após a compilação JSP e os arquivos temporários do Servlet.
Nota: Limpe o conteúdo deste diretório e reinicie o Tomcat para limpar o cache compilado de JSP e Servlet.
简单的来说,work的作用就是JSP编译和缓存来提高tomcat的性能,主要体现在响应速度上;
注意需要定期清理该目录,长期tomcat的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;
Função: Armazenar arquivos temporários gerados durante a execução do Tomcat.
Nota: Esses arquivos temporários geralmente são usados para suportar operações internas do Tomcat, como gerenciamento de sessões, upload de arquivos, etc.
这个目录有点类似于work目录,也是通过缓存临时文件来提高应用程序的性能
[1] Depois de fazer as configurações relevantes, muitas vezes você precisa reiniciar o Tomcat para que tenha efeito;
[2] Embora os diretórios temporário e de trabalho sejam arquivos de cache e temporários, você ainda precisa fazer um backup ao limpá-los e confirmar se esses arquivos ainda estão ocupados por outros processos do aplicativo;
[3] Quando o desligamento é executado, ele não para imediatamente, mas tenta desligar o Tomcat normalmente. Este processo pode demorar um pouco para parar dependendo da situação; ;