Tomcat简介
Tomcat是Apache软件基金会开发的轻量级Web应用服务器,支持Servlet和JSP规范,常用于Java Web应用的部署和运行。它是开源的,跨平台,适合开发测试及中小型生产环境。
Tomcat核心组件
- Server:顶级组件,代表整个Tomcat实例。
- Service:包含多个Connector和一个Engine,提供特定服务。
- Connector:处理客户端请求(如HTTP/1.1、AJP协议)。
- Engine:请求处理的核心,包含多个Host。
- Host:虚拟主机,关联域名和Web应用。
- Context:代表单个Web应用,对应
webapps目录下的应用。
Tomcat安装与启动
-
下载与解压
- 从Apache Tomcat官网下载对应版本(如Tomcat 9/10)。
- 解压到指定目录(如
/opt/tomcat或C:\tomcat)。
-
环境配置
- 设置
JAVA_HOME环境变量指向JDK安装路径。 - 可选:添加
CATALINA_HOME指向Tomcat根目录。
- 设置
-
启动与停止
- Linux/macOS:
$ cd /opt/tomcat/bin $ ./startup.sh # 启动 $ ./shutdown.sh # 停止 - Windows:
> cd C:\tomcat\bin > startup.bat # 启动 > shutdown.bat # 停止 - 默认访问地址:
http://localhost:8080。
- Linux/macOS:
部署Web应用
-
直接复制WAR包
- 将编译好的WAR文件放入
webapps目录,Tomcat会自动解压部署。
- 将编译好的WAR文件放入
-
手动配置Context
- 在
conf/Catalina/localhost下创建XML文件(如myapp.xml),内容示例:<Context path="/myapp" docBase="/path/to/your/webapp" />
- 在
-
热部署
- 启用
autoDeploy="true"(默认配置)可自动检测webapps目录的更新。
- 启用
常见配置调整
-
修改端口
- 编辑
conf/server.xml,找到Connector标签修改port属性:<Connector port="8080" protocol="HTTP/1.1" ... />
- 编辑
-
调整内存参数
- 在
bin/catalina.sh(Linux)或catalina.bat(Windows)中设置:export JAVA_OPTS="-Xms512m -Xmx1024m"
- 在
-
启用HTTPS
- 在
server.xml中配置SSL Connector:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig certificateVerification="false"> <Certificate certificateKeystoreFile="conf/keystore.jks" type="RSA" /> </SSLHostConfig> </Connector>
- 在
日志管理
- 访问日志:在
conf/server.xml中启用AccessLogValve。 - 应用日志:通过
logging.properties配置日志级别(如java.util.logging.ConsoleHandler.level = INFO)。 - Catalina日志:查看
logs/catalina.out(Linux)或logs/catalina.log(Windows)。
性能优化建议
- 使用NIO或APR连接器(
protocol="org.apache.coyote.http11.Http11NioProtocol")。 - 调整线程池参数(
maxThreads、acceptCount)。 - 禁用不必要的Web应用自动部署(
autoDeploy="false")。 - 定期清理
work目录下的临时文件。
常见问题排查
- 端口冲突:通过
netstat -ano(Windows)或lsof -i :8080(Linux)检查占用进程。 - 内存溢出:分析
heapdump文件,调整-XX:MaxMetaspaceSize和-Xmx参数。 - 应用加载失败:检查
webapps目录权限及WEB-INF/web.xml配置。
通过以上步骤和配置,可高效管理Tomcat服务器并解决常见问题。
1007

被折叠的 条评论
为什么被折叠?



