云计算百科
云计算领域专业知识百科平台

【Day32】Tomcat 服务器:安装、配置与 Web 应用部署

本文收录于「Java 学习日记:从入门到架构师」专栏,聚焦 Java Web 核心基础,从 Tomcat 实操入手,帮你打通 “写代码 – 部署运行” 的最后一公里~

一、为什么要学 Tomcat?

在上一篇 HTTP 协议的学习中,我们知道客户端的请求需要服务器来处理 —— 而 Tomcat 就是 Java 开发者最常用的开源 Servlet 容器 / WEB 服务器。

简单来说:

  • 你写的 SpringBoot、SSM 项目,本质上是运行在 Tomcat 中的;
  • 即使 SpringBoot 内置了 Tomcat,掌握独立 Tomcat 的安装、配置和部署,才能理解 Web 应用的运行原理;
  • 实际开发 / 运维中,部署项目、排查端口占用、调整 JVM 参数等场景,都离不开 Tomcat 的基础操作。

今天这篇日记,我们从 “下载安装→核心配置→项目部署” 全流程实操,新手也能跟着一步步做。

二、Tomcat 前置准备与安装(Windows/Linux 通用思路)

1. 前置条件

Tomcat 是 Java 开发的,必须先安装 JDK 并配置环境变量:

  • 验证:打开终端 / CMD,输入 java -version,能显示 JDK 版本即配置成功;
  • 版本兼容:Tomcat 9 推荐 JDK 8+,Tomcat 10 推荐 JDK 11+(注意:Tomcat 10 对 Servlet API 包名做了调整,新手先学 Tomcat 9)。

2. 下载 Tomcat

  • 官网地址:Apache Tomcat 9;
  • 选择对应系统版本:
    • Windows:下载 32-bit/64-bit Windows Service Installer(安装版)或 zip(解压版,推荐);
    • Linux:下载 tar.gz 压缩包。
  • 3. 安装 / 解压(以 Windows 为例)

    • 解压版:将下载的 zip 包解压到非中文、无空格的目录(如 D:\\apache-tomcat-9.0.80);
    • 安装版:双击安装程序,一路下一步,注意选择 JDK 路径,端口默认 8080 即可。

    4. 启动与验证 Tomcat

    方式 1:脚本启动(推荐)
  • 进入 Tomcat 解压目录的 bin 文件夹:
    • Windows:双击 startup.bat;
    • Linux:执行 ./startup.sh(需先赋予权限:chmod +x startup.sh shutdown.sh);
  • 验证:打开浏览器,输入 http://localhost:8080,能看到 Tomcat 默认页面即启动成功;
  • 停止:bin 文件夹中双击 shutdown.bat(Windows)/ 执行 ./shutdown.sh(Linux)。
  • 方式 2:Windows 服务启动

    安装版可将 Tomcat 注册为系统服务:

  • 以管理员身份运行 bin 中的 service.bat install;
  • 在 “服务” 中找到 Apache Tomcat 9,手动启动 / 停止。
  • 三、Tomcat 核心目录与配置文件

    先理清 Tomcat 的目录结构,后续配置和部署都基于这些目录:

    目录核心作用
    bin 启动 / 停止脚本(startup.sh/bat、shutdown.sh/bat)
    conf 核心配置文件(server.xml、web.xml、tomcat-users.xml)
    webapps Web 应用部署目录(将项目放到这里即可运行)
    logs 日志文件(排查问题的关键,如 catalina.out)
    temp 临时文件目录
    work Tomcat 编译 JSP 生成的 class 文件目录

    1. 核心配置文件:server.xml(重点)

    conf/server.xml 是 Tomcat 的核心配置文件,主要配置端口、连接器、引擎等,新手重点关注 3 个配置:

    (1)修改 Tomcat 端口(解决端口占用)

    默认端口 8080,若被占用,找到 <Connector> 标签修改:

    xml

    <!– 默认8080端口,改为8081(任意未被占用的端口) –>
    <Connector port="8081" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

    • port:HTTP 访问端口;
    • redirectPort:HTTPS 重定向端口;
    • connectionTimeout:连接超时时间(毫秒)。

    修改后重启 Tomcat,访问地址变为 http://localhost:8081。

    (2)配置主机(Host)

    默认主机是 localhost,对应部署目录 webapps/ROOT(访问 http://localhost:8080 实际访问的是这个目录):

    xml

    <Host name="localhost" appBase="webapps"
    unpackWARs="true" autoDeploy="true">
    <!– 日志相关配置 –>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log" suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>

    • appBase:该主机的应用部署根目录;
    • autoDeploy:是否自动部署(放入 webapps 的项目会自动加载);
    • unpackWARs:是否自动解压 WAR 包。

    2. 配置管理员账户(Tomcat 管理后台)

    Tomcat 自带管理后台(http://localhost:8080/manager/html),可可视化部署项目,需先配置账户:

    编辑 conf/tomcat-users.xml,在 <tomcat-users> 标签内添加:

    xml

    <!– 配置管理员角色和账户密码 –>
    <user username="admin" password="123456" roles="manager-gui,admin-gui"/>

    • manager-gui:允许访问项目管理后台;
    • admin-gui:允许访问服务器管理后台。

    ⚠️ 注意:Tomcat 8+ 默认只允许本地访问管理后台,若需远程访问,需修改 webapps/manager/META-INF/context.xml,注释掉 IP 限制:

    xml

    <!– 注释掉以下内容,允许所有IP访问 –>
    <!– <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1" /> –>

    四、Web 应用部署(3 种常用方式)

    方式 1:直接复制部署(最简单)

  • 将你的 Web 项目(文件夹形式)或 WAR 包,直接复制到 Tomcat 的 webapps 目录;
  • 若 Tomcat 已启动,会自动解压(WAR 包)并加载项目;
  • 访问路径:http://localhost:8080/项目名/接口路径(如 http://localhost:8080/demo/login);
    • 若项目名是 ROOT,则访问路径为 http://localhost:8080/接口路径(默认根项目)。
  • 方式 2:管理后台部署(可视化)

  • 启动 Tomcat,访问 http://localhost:8080/manager/html,输入配置的 admin 账户密码;
  • 找到 “Deploy” 区域,选择 WAR 包文件,点击 “Deploy” 即可完成部署;
  • 可在后台直接启动 / 停止 / 卸载项目,适合测试环境。
  • 方式 3:配置 Context 部署(指定路径)

    若不想将项目放在 webapps 目录,可通过配置指定项目路径:

    在 conf/Catalina/localhost 目录下,新建 demo.xml(文件名 = 项目访问路径),内容:

    xml

    <Context docBase="D:\\projects\\demo" reloadable="true"/>

    • docBase:项目的实际路径(文件夹或 WAR 包);
    • reloadable:是否热部署(项目文件修改后自动重启,开发环境推荐 true,生产环境推荐 false)。

    配置后启动 Tomcat,访问路径为 http://localhost:8080/demo。

    五、实战:部署一个简单的 Java Web 项目

    1. 准备项目(新手示例)

    新建一个简单的 Web 项目,结构如下:

    plaintext

    demo/
    ├── WEB-INF/
    │ ├── web.xml # Web核心配置文件
    │ ├── classes/ # 存放class文件(空即可)
    │ └── lib/ # 存放依赖包(空即可)
    └── index.html # 测试页面

    index.html 内容:

    html

    预览

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Tomcat部署测试</title>
    </head>
    <body>
    <h1>🎉 恭喜!Tomcat部署成功!</h1>
    <p>Java学习日记 – Day32</p>
    </body>
    </html>

    WEB-INF/web.xml 内容(最简配置):

    xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    version="4.0">
    <!– 默认首页 –>
    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    </web-app>

    2. 部署并访问

  • 将 demo 文件夹复制到 Tomcat 的 webapps 目录;
  • 启动 Tomcat;
  • 打开浏览器访问 http://localhost:8080/demo,能看到测试页面即部署成功。
  • 六、避坑指南:Tomcat 常见问题

  • 端口占用:启动 Tomcat 提示 “8080 端口被占用”,可修改 server.xml 中的端口,或用 netstat -ano | findstr 8080(Windows)/ lsof -i:8080(Linux)查看占用进程,结束后重启;
  • 启动闪退:大概率是 JDK 环境变量未配置,或 Tomcat 解压路径有中文 / 空格,检查后重新配置;
  • 项目访问 404:确认项目放在 webapps 目录,且访问路径正确(http://localhost:8080/项目名),若配置了 Context,检查 docBase 路径是否正确;
  • 权限不足(Linux):启动 Tomcat 提示 “Permission denied”,执行 chmod +x bin/*.sh 赋予脚本执行权限。
  • 七、今日实战小任务

  • 下载并安装 Tomcat 9,修改默认端口为 8081,启动后验证;
  • 配置 Tomcat 管理员账户,登录管理后台;
  • 编写一个简单的 HTML 页面,打包成 Web 项目部署到 Tomcat,访问验证。

  • 总结

  • Tomcat 是 Java Web 核心服务器,核心目录中 conf 存放配置、webapps 存放部署的项目、bin 存放启动 / 停止脚本;
  • server.xml 是核心配置文件,可修改端口、配置主机,tomcat-users.xml 用于配置管理后台账户;
  • Tomcat 部署项目有 3 种常用方式:复制到 webapps、管理后台部署、配置 Context 部署,新手优先掌握第一种。
  • 下一篇【Day33】预告:Servlet 核心详解(生命周期、请求 / 响应处理、实战案例),关注专栏持续解锁 Java Web 核心知识点~若本文对你有帮助,欢迎点赞 + 收藏 + 关注,你的支持是我更新的最大动力💖!

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【Day32】Tomcat 服务器:安装、配置与 Web 应用部署
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!