내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
글이 여러분에게 영감과 영감을 줄 수 있기를 바랍니다~
글이 도움이 되셨다고 생각되시면,좋아요+팔로우+수집 블로거를 응원해주세요~
Tomcat은 여전히 개발자의 일상생활에서 활발하게 활동하고 있지만 우리는 Tomcat에 대해 더 깊이 이해하고 있습니까? 아니면 Tomcat을 설치하고 구성하고 시작하는 방법만 아는 것으로 충분합니까? 이 기사는 나의 요약이자 기록입니다. 필요한 것이 있기를 바랍니다.
환경적 요인을 고려하여 각자 자신의 소프트웨어와 하드웨어 환경을 제대로 비교, 분석해야 합니다~ 하드웨어와 소프트웨어 환경을 주의 깊게 읽어보시기 바랍니다.
Windows 11 专业版
개발 도구:Tomcat 9.0
파일 디렉터리 구조는 주로 bin, conf, lib, log, temp, webapps, work로 구분됩니다. Tomcat의 파일 디렉터리 구조는 비교적 명확하며 각 디렉터리에는 고유한 이름이 있습니다.
特定的功能
그리고用途
;
bin 디렉토리는 Tomcat 시작 및 종료 스크립트 파일을 저장합니다.
重要的文件
우리는 알아야 합니다.
~을 위한startup
그리고shutdown
Tomcat 서버를 빠르게 시작하고 종료하려면 매일 사용해야 합니다. 접미사 bat의 경우 운영 체제 유형에 따라 다릅니다.
~에 대한Catalina
파일도 Tomcat에서 가져온 것입니다.启动脚本
,그리고startup
가장 큰 차이점은 후자이다.专注启动
, 전자는 여전히 통과할 수 있지만配置参数
다른 목적을 달성하기 위해
예를 들어 여기에서는 catalina를 사용하여 Tomcat을 시작합니다. 다음을 수행합니다.catalina.bat start
(윈도우 시스템)
여기는tomcat的bin目录
아래에서 실행됨(구성한 경우)环境变量
, 그러면 어느 위치에서나 이 작업을 수행할 수 있습니다.catalina.bat stop
서비스를 중지하려면
그렇다면 매개변수를 구성하는 방법은 무엇입니까?
일반적인 접근 방식은 catalina 파일을 수정하여 관련 매개변수를 구성하는 것입니다. 가장 일반적인 매개변수 구성은 JVM 및 기타 관련 콘텐츠입니다(예: 여기 catalina 파일).
-Xms512m
이미 설정됨JVM的初始堆内存
512MB이고,-Xmx1024m
이미 설정됨最大堆内存
1024MB이고,-XX:+UseG1GC
활성화됨G1垃圾回收器
,-Duser.timezone=Asia/Shanghai
이미 설정됨JVM的时区
수정 후 tomcat을 다시 시작하면 구성이 적용됩니다. 구성 전후의 차이점을 비교하면 다음과 같습니다.
프로그램이 정상적으로 시작되고 콘솔에서 구성한 매개변수 정보를 볼 수 있습니다.
需要注意的是
, 실제 상황에서는 그렇지 않습니다.不建议直接在catalina中修改
이는 Tomcat 서비스의 업그레이드 및 유지 관리에 우호적이지 않으므로 권장합니다.通过setenv配置文件
매개변수를 구성하려면 왜 setenv를 사용합니까? catalina의 구성 파일을 살펴보겠습니다. 이 단락은 스크립트가 시작될 때 판단을 내릴 것임을 알려줍니다. 이 파일이 있으면 자동으로 호출됩니다. 이 파일은 일반적으로 현재 Tomcat 디렉토리에 존재하지 않습니다. 직접 수동으로 생성합니다.
setenv(Windows의 경우 setenv.bat, mac/linux의 경우 setenv.sh)를 만든 후 다른 시스템에 따라 구성을 추가하세요. 구문이 약간 다를 수 있습니다.
// 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
service 파일을 보면 이 파일은 Windows에서만 볼 수 있으며 일반적으로 Tomcat 서비스를 시스템 서비스로 등록하는 데 사용됩니다. 주요 사용법은 bin 디렉터리에 들어가서 service.bat 설치 + 사용자 정의 서비스 이름을 실행하는 것입니다.
그런 다음 Windows 서비스에서 현재 시작되지 않았음을 확인할 수 있습니다. 클릭하여 컴퓨터를 시작하거나 다시 시작할 수 있습니다.
conf 디렉토리는 Tomcat 서버의 다양한 전역 구성 파일을 저장합니다.
Apache Tomcat의 server.xml 구성 파일에서 다음을 수행할 수 있습니다.配置多个端口
, 그러나 이들 중 가장 일반적인 것은 다음과 같습니다.HTTP服务的端口
(기본값은 8080),AJP服务的端口
(기본값은 8009)SSL/TLS(即HTTPS)的端口
(활성화된 경우 기본값은 8443일 수 있지만 이는 특정 구성에 따라 다릅니다.)
【1】http 커넥터 포트
HTTP 커넥터는 Tomcat으로 들어오는 HTTP 요청을 처리하는 데 사용됩니다. 기본적으로 Tomcat은 포트 8080에서 수신 대기합니다. 레이블의 포트 속성을 수정하여 이 포트를 변경할 수 있습니다.
【2】AJP 커넥터 포트
AJP(Apache JServ Protocol) 커넥터는 특히 mod_jk 모듈을 사용할 때 Tomcat과 Apache HTTP 서버 간의 통신에 사용됩니다. 기본적으로 Tomcat은 포트 8009에서 수신 대기합니다.
AJP目前我们其实不怎么使用,因为nginx已经可以替代它;它一开始是默认注释的,根据自己需要来开启
【3】SSL/TLS(HTTPS) 커넥터 포트
Tomcat이 HTTPS 요청을 처리하도록 하려면 SSL/TLS 커넥터를 구성해야 합니다.여기에는 SSL 인증서의 키 저장소(keystore) 및 비밀번호와 같은 정보를 지정하는 작업이 포함됩니다.
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改
Tomcat 설치 디렉터리에서conf目录
가운데web.xml文件
예全局配置文件
, Tomcat 서버 전체의 기본 서블릿 및 MIME 유형 매핑 등을 정의합니다. 일반적으로 이 전역 web.xml 파일은 전체 Tomcat 서버에 전역 서블릿 매핑, 필터(Filter), 리스너(Listener) 등을 추가해야 하는 경우를 제외하고는 개발자가 자주 수정할 필요가 없습니다.
一些配置是可以通过注解(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>
이 파일을 편집하면 로그 수준, 형식, 출력 위치 등을 정의할 수 있습니다. 이는 Tomcat 서버와 배포된 애플리케이션을 모니터링하고 디버깅하는 데 유용합니다.
# 设置日志的根级别和处理器
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
기능: Tomcat 실행에 필요한 라이브러리 파일(JAR 파일)을 저장합니다.
참고: 일부 이전 버전의 Tomcat 또는 특정 구성에서는 common/lib, server/lib 또는 shared/lib와 같은 다른 디렉터리에 JAR 파일을 저장할 수 있지만 최신 버전의 Tomcat은 핵심 라이브러리 파일을 lib 디렉터리에 저장하는 것을 선호합니다.
기능: Tomcat 실행 시 로그 파일을 저장합니다.
내용: catalina.out, localhost.log 등과 같은 Tomcat 시작, 실행 및 종료 프로세스 중 다양한 로그 정보를 포함합니다.
这里catalina.2024-7-10是通过日志滚动策略生成的,用于记录Catalina容器的日常运行日志;
locahost.2024-7-10,localhost_access_log.2024-7-10分别记录了应用程序的日志信息和访问日志
;
host-manager日志是监控和管理Tomcat服务器上虚拟主机的重要工具。通过分析这些日志文件,管理员可以了解虚拟主机的使用情况,以及是否存在潜在的问题或安全风险
일반적으로 매일 로그를 확인할 때 Catalina.log/Catalina.out/appName.log 등을 선택하지 않습니다.
기능: 웹 애플리케이션을 저장하는 데 사용되는 Tomcat의 기본 웹 게시 디렉터리입니다.
콘텐츠: 기본적으로 이 디렉터리에 웹 애플리케이션 파일을 배치하여 애플리케이션을 게시할 수 있습니다. Tomcat은 이 디렉터리의 응용 프로그램을 자동으로 검색하여 배포합니다.
웹앱의 특징은 다음과 같습니다.
【1】자동 배포: Tomcat은 webapps 디렉터리의 모든 콘텐츠를 정기적으로 검색합니다.당신이 배치할 때 WAR 文件
(예: myapp.war) webapps 디렉토리에 배치되면 Tomcat은 자동으로 이 파일을 감지하고尝试部署它
.파일이 WAR 패키지인 경우 Tomcat은 먼저 파일의 압축을 푼 다음 압축이 풀린 디렉터리 구조에 따라 애플리케이션을 배포합니다.
【2】관리: webapps 디렉토리에 있는 파일을 직접 조작하여 Tomcat에서 웹 애플리케이션을 쉽게 관리할 수 있습니다.예를 들어 다음을 통과할 수 있습니다.删除目录来卸载应用程序
또는 다음을 통해替换 WAR 文件
오다고쳐 쓰다앱.
【3】맞춤형 배포 경로:Tomcat 默认将 Web 应用程序部署在 webapps 目录下
, 그러나 Tomcat 구성 파일(예: server.xml
) 다른 디렉터리를 애플리케이션의 배포 경로로 지정합니다. 이것을 언급하자면, 다른 경로가 정의되는 경우는 드물지만 불가능한 것은 아닙니다.
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- 配置一个Context来指定其他目录为应用程序的部署路径 -->
<Context path="/myapp" docBase="/path/to/your/application" reloadable="true">
<!-- 这里可以添加更多的Context配置 -->
</Context>
<!-- 其他Host配置 -->
</Host>
기능: JSP 컴파일 후 생성된 클래스 파일과 서블릿의 임시 파일을 저장한다.
참고: JSP 및 Servlet의 컴파일된 캐시를 지우려면 이 디렉토리의 내용을 지우고 Tomcat을 다시 시작하십시오.
简单的来说,work的作用就是JSP编译和缓存来提高tomcat的性能,主要体现在响应速度上;
注意需要定期清理该目录,长期tomcat的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;
기능: Tomcat 실행 중 생성된 임시 파일을 저장합니다.
참고: 이러한 임시 파일은 일반적으로 세션 관리, 파일 업로드 등과 같은 Tomcat의 내부 작업을 지원하는 데 사용됩니다.
这个目录有点类似于work目录,也是通过缓存临时文件来提高应用程序的性能
[1] 관련 구성을 수행한 후 적용하려면 Tomcat을 다시 시작해야 하는 경우가 많습니다.
[2] 임시 및 작업 디렉터리는 캐시 파일이자 임시 파일이지만, 이를 지울 때는 백업을 만들고 이러한 파일이 다른 응용 프로그램 프로세스에서 아직 사용되고 있는지 확인해야 합니다.
[3] 종료가 실행되면 즉시 중지되지 않고 Tomcat을 정상적으로 종료하려고 시도합니다. 이 프로세스는 상황에 따라 중지하는 데 시간이 걸릴 수 있지만 Tomcat 포트 상태를 확인하여 Tomcat이 종료되었는지 여부를 판단할 수 있습니다. ;