Tomcat 详细使用教程:从入门到精通

Tomcat 详细使用教程:从入门到精通

# Tomcat 详细使用教程

## 一、Tomcat 简介和核心架构

**Apache Tomcat**(简称 Tomcat)是一个轻量级的应用服务器,是主流的 **Servlet 容器**,用于运行 Java Web 应用。

### 核心架构

| 组件 | 说明 |
|——|——|
| **Catalina** | Servlet 容器,处理 HTTP 请求 |
| **Coyote** | 连接器,处理网络通信 |
| **Jasper** | JSP 编译器 |
| **Cluster** | 集群支持 |

### 核心概念

– **Server** – Tomcat 服务器实例
– **Service** – 服务组合(Connector + Engine)
– **Connector** – 连接器,处理客户端请求
– **Engine** – 引擎,处理请求并生成响应
– **Host** – 虚拟主机
– **Context** – Web 应用上下文

## 二、快速入门

### 下载安装

“`bash
# 下载 Tomcat
wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.tar.gz

# 解压
tar -xzf apache-tomcat-10.1.26.tar.gz
cd apache-tomcat-10.1.26

# 设置 JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-17
export CATALINA_HOME=/opt/tomcat

# 启动 Tomcat
bin/startup.sh

# 查看进程
ps aux | grep tomcat
“`

### 目录结构

“`
apache-tomcat-10.1.26/
├── bin/ # 启动和停止脚本
│ ├── catalina.sh # Tomcat 核心脚本
│ ├── startup.sh # 启动脚本
│ └── shutdown.sh # 停止脚本
├── conf/ # 配置文件
│ ├── server.xml # 主配置文件
│ ├── context.xml # 上下文配置
│ ├── web.xml # Web 应用配置
│ └── tomcat-users.xml # 用户配置
├── webapps/ # Web 应用部署目录
├── logs/ # 日志文件
│ ├── catalina.out # 启动日志
│ ├── localhost. # 虚拟主机日志
│ └── access_log # 访问日志
├── lib/ # Tomcat 核心库
└── work/ # 工作目录(JSP 编译产物)
“`

### 启动和停止

“`bash
# 启动 Tomcat
bin/startup.sh

# 关闭 Tomcat
bin/shutdown.sh

# 查看日志
tail -f logs/catalina.out

# 强制停止
kill -9 $(ps aux | grep tomcat | grep -v grep | awk ‘{print $2}’)
“`

## 三、配置管理

### server.xml 配置

“`xml














“`

### 关键配置项说明

| 配置项 | 说明 | 建议值 |
|——–|——|——–|
| `port` | 监听端口 | 8080 |
| `connectionTimeout` | 连接超时时间 | 20000ms |
| `redirectPort` | HTTPS 重定向端口 | 8443 |
| `maxThreads` | 最大线程数 | 200 |
| `minSpareThreads` | 最小空闲线程 | 10 |

### context.xml 配置

“`xml



30





“`

### tomcat-users.xml 配置

“`xml







“`

## 四、虚拟主机配置

### 配置多个域名

“`xml




“`

### 配置说明

| 属性 | 说明 |
|——|——|
| `name` | 虚拟主机域名 |
| `appBase` | Web 应用目录 |
| `unpackWARs` | 是否解压 WAR 包 |
| `autoDeploy` | 是否自动部署 |

## 五、部署应用

### 方式一:复制 WAR 包

“`bash
# 停止 Tomcat
bin/shutdown.sh

# 复制 WAR 包
cp myapp.war /opt/tomcat/webapps/

# 启动 Tomcat
bin/startup.sh

# 查看部署状态
curl -I http://localhost:8080/myapp
“`

### 方式二:解压 WAR 包

“`bash
# 解压 WAR 包
cd /opt/tomcat/webapps
unzip myapp.war -d myapp

# 启动 Tomcat(自动检测)
bin/startup.sh
“`

### 方式三:使用 manager 应用

“`bash
# 访问管理界面
http://localhost:8080/manager/html

# 通过 API 部署
curl -u admin:admin123 \
–upload-file myapp.war \
“http://localhost:8080/manager/text/deploy?path=/path/to/myapp”
“`

### 方式四:配置外部 WAR

“`xml


“`

### 自动部署配置

“`xml



WEB-INF/web.xml


“`

## 六、性能调优

### 线程池配置

“`xml


“`

### 关键参数说明

| 参数 | 说明 | 建议 |
|——|——|——|
| `maxThreads` | 最大工作线程 | CPU 核数×2~4 |
| `minSpareThreads` | 最小空闲线程 | 10~50 |
| `acceptCount` | 排队请求数 | 50~200 |
| `keepAliveTimeout` | 保持连接时间 | 30000ms |

### JVM 调优参数

“`bash
# bin/catalina.sh 添加以下配置
export CATALINA_OPTS=”-Xms512m -Xmx1024m”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:+UseG1GC”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:MaxGCPauseMillis=200″
export CATALINA_OPTS=”$CATALINA_OPTS -XX:+HeapDumpOnOutOfMemoryError”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:HeapDumpPath=/opt/tomcat/logs/heapdump.hprof”
“`

### 连接池配置

“`xml


“`

## 七、常见问题排查

### 问题一:端口被占用

“`bash
# 查看端口占用
netstat -tlnp | grep 8080
lsof -i :8080

# 解决方案:修改端口
# conf/server.xml

“`

### 问题二:启动失败

“`bash
# 查看日志
tail -f logs/catalina.out

# 常见问题:
# 1. JAVA_HOME 配置错误
# 2. 端口被占用
# 3. 内存不足
“`

### 问题三:404 错误

“`bash
# 检查 WAR 包是否部署成功
ls -la /opt/tomcat/webapps/

# 检查应用路径
# http://localhost:8080/your-app-name/

# 检查 web.xml 配置
cat /opt/tomcat/webapps/your-app/WEB-INF/web.xml
“`

### 问题四:中文乱码

“`xml


“`

### 问题五:内存溢出

“`bash
# 调整 JVM 参数
export CATALINA_OPTS=”-Xms1024m -Xmx2048m”

# 查看堆内存使用情况
jstat -gcutil $(ps aux | grep tomcat | grep -v grep | awk ‘{print $2}’) 1000
“`

## 八、最佳实践

### 1. 安全加固

“`xml



Protected Area
/*
PUT
DELETE
TRACE





403
/error/403.html

“`

### 2. 日志配置

“`xml


“`

### 3. 生产环境配置

“`xml


“`

### 4. 监控配置

“`xml



“`

## 总结

本文涵盖了 Tomcat 的:

– ✅ **核心架构** – Server、Service、Connector、Engine、Host、Context
– ✅ **快速入门** – 安装、启动、目录结构
– ✅ **配置管理** – server.xml、context.xml、tomcat-users.xml
– ✅ **虚拟主机** – 多域名配置
– ✅ **部署应用** – WAR 包、自动部署、外部 WAR
– ✅ **性能调优** – 线程池、JVM、连接池
– ✅ **问题排查** – 端口、日志、404、乱码、内存
– ✅ **最佳实践** – 安全加固、日志、生产环境、监控

#Tomcat #Java #Web 服务器 #Servlet #分布式 #应用服务器

**文章已完成!**

**文件路径:** `/home/node/.openclaw/agents/creator/workspace/content/Tomcat 详细使用教程_20260425_0932.md`

请告诉我下一步操作(配图、发布等)!

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容