Tomcat 部署配置指南

1. 环境要求

  • JDK 8 或更高版本

  • Tomcat 8.5/9.x/10.x

  • Windows 操作系统

2. 安装步骤

2.1 安装JDK

  1. 下载并安装JDK

  2. 配置环境变量:

  • JAVA_HOME: JDK安装目录

  • Path: 添加 %JAVA_HOME%\bin

  1. 验证安装:打开命令提示符,输入 `java -version`

2.2 安装Tomcat

  1. 从官网下载Tomcat压缩包

  2. 解压到指定目录(如:D:\tomcat)

  3. 配置环境变量:

  • CATALINA_HOME: Tomcat安装目录

  • Path: 添加 %CATALINA_HOME%\bin

3. 配置说明

3.1 端口配置

修改 `conf/server.xml`:

```xml

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

```

3.2 内存配置

修改 `bin/catalina.bat`,添加:

```

set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m

```

3.3 字符编码

修改 `conf/server.xml` 中的Connector配置:

```xml

<Connector URIEncoding="UTF-8" />

```

4. 部署应用

4.1 部署方式

  1. **直接部署**:将WAR包复制到 `webapps` 目录

  2. **管理界面部署**:通过Tomcat管理界面上传WAR包

  3. **配置文件部署**:在 `conf/server.xml` 中配置Context

4.2 示例配置

```xml

<Context path="/myapp" docBase="D:\webapps\myapp" reloadable="true"/>

```

5. 启动和停止

5.1 启动服务

```bash

%CATALINA_HOME%\bin\startup.bat

```

5.2 停止服务

```bash

%CATALINA_HOME%\bin\shutdown.bat

```

6. 常见问题处理

6.1 端口占用

  1. 查找占用端口的进程:

```bash

netstat -ano | findstr :8080

```

  1. 结束进程或更改Tomcat端口

6.2 内存溢出

检查并调整JAVA_OPTS参数

6.3 404错误

  • 检查应用部署路径

  • 确认Context配置正确

  • 查看日志文件

7. 安全配置

7.1 管理界面安全

修改 `conf/tomcat-users.xml`:

```xml

<role rolename="manager-gui"/>

<user username="admin" password="password" roles="manager-gui"/>

```

7.2 禁用列目录

修改 `conf/web.xml`:

```xml

<servlet>

<servlet-name>default</servlet-name>

<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

<init-param>

<param-name>listings</param-name>

<param-value>false</param-value>

</init-param>

</servlet>

```

8. 性能优化建议

  1. 适当配置连接池

  2. 启用GZIP压缩

  3. 调整JVM参数

  4. 配置线程池

9. 日志管理

9.1 日志位置

  • catalina.out:主日志文件

  • localhost.log:应用日志

  • manager.log:管理日志

9.2 日志配置

修改 `conf/logging.properties` 配置日志级别和输出方式

10. 备份策略

  1. 定期备份以下目录:
  • conf/

  • webapps/

  • work/

  • logs/

  1. 备份自定义的配置文件

  2. 导出数据库(如果使用)

相关推荐
小bo波8 小时前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking8 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
张不才11 小时前
CPU 100% 了怎么办?Java 性能排障的标准化操作
java·后端
shepherd11113 小时前
吞吐量提升 10 倍:高并发大批量数据处理任务的架构演进与性能调优
java·后端·架构
plainGeekDev16 小时前
单例模式 → object 声明
android·java·kotlin
用户2986985301416 小时前
Java 实现 Word 文档文本与图片提取的方法
java·后端
SimonKing17 小时前
铁子,IntelliJ IDEA 2026.1.3来了,升不升?
java·后端·程序员
咖啡八杯1 天前
GoF设计模式——策略模式
java·后端·spring·设计模式
用户128526116022 天前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java