Tomcat 企业级运维实战系列(二):Tomcat 系统化管理与应用部署
- [一:systemctl 化管理](#一:systemctl 化管理)
-
- 1)流程
- [2)案例:将二进制安装的 `tomcat` 转换为 `systemctl` 管理](#2)案例:将二进制安装的
tomcat
转换为systemctl
管理)
- [二:运行 Java 代码](#二:运行 Java 代码)
-
- 1)概述
- [2)案例一:war 包](#2)案例一:war 包)
- [3)案例二:jar 包](#3)案例二:jar 包)
- [三:Tomcat 管理端](#三:Tomcat 管理端)
- 总结
🚀 Tomcat 系列文章导航
本系列系统讲解 Linux 环境下 Apache Tomcat 的部署、配置、管理与优化,并最终带你完成 企业级前后端分离项目上线。无论你是初学者还是想进阶的运维人员,这份路线图都能帮你快速构建完整的知识体系。
⚠️ 该系列所有涉及的软件包和项目都可以私信博主免费获取
- 👉 第一部分:Tomcat 核心概念与基础部署
- 👉 第二部分:Tomcat 系统化管理与应用部署
- 👉 第三部分:Tomcat 配置解析与集群化部署
- 👉 第四部分:Tomcat 企业级监控
- 👉 第五部分:Tomcat 优化和安全加固
- 👉 第六部分:综合项目实战:Java 前后端分离架构部署
一:systemctl 化管理
⚠️ 通过配置实现对通过二进制安装或编译安装的软件进行
systemctl
管理服务,承接第一部分博客二进制安装的JDK
1)流程
- 确认服务安装路径
- 创建专用用户(可选,安全推荐)
- 新建
systemctl unit
文件 - 重新加载
systemctl
配置
2)案例:将二进制安装的 tomcat
转换为 systemctl
管理
-
确认服务安装路径
-
创建专用用户
bash[root@web01 ~]# useradd -Ms /sbin/nologin tomcat
-
设置服务目录权限所属
bash[root@web01 ~]# chown -R tomcat:tomcat /opt/module/tomcat-8.5.87
-
新建
tomcat.service
文件[Unit]
配置项 含义 [Unit]
描述服务的基本信息、依赖关系(决定服务启动顺序)。 Description
服务的说明文字,仅用于注释或 systemctl status
时显示。After
指定本服务要在某些目标或服务之后启动(只影响顺序,不代表依赖) [Service]
配置项 含义 [Service]
定义服务的启动、停止、重启方式,是 systemd 单元文件的核心部分。 Type
指定服务类型: simple
(默认,前台进程)、forking
(后台进程)、notify
(进程主动通知 ready)。ExecStart
服务启动时执行的命令。 ExecStop
服务停止时执行的命令。 ExecReload
服务重载(不重启整个进程)时执行的命令。 EnvironmentFile
指定存放环境变量的文件路径,适用于二进制或编译安装的程序。 [Install]
配置项 含义 [Install]
定义服务在何种运行级别下启用,一般内容比较固定。 WantedBy=multi-user.target
指定在多用户模式(相当于传统运行级别 3)下启用,通常用于服务器环境。 bash[root@web01 ~]# vim /usr/lib/systemd/system/tomcat.service
bash[Unit] Description=Tomcat java web container After=network.target [Service] Type=forking # 设置环境变量(如 JAVA_HOME 或其他依赖) Environment=JAVA_HOME=/opt/module/jdk1.8.0_212 # 指定启动与关闭脚本 ExecStart=/opt/module/tomcat-8.5.87/bin/startup.sh ExecStop=/opt/module/tomcat-8.5.87/bin/shutdown.sh # 运行身份(推荐非 root) User=tomcat Group=tomcat [Install] WantedBy=multi-user.target
-
重新加载
systemctl
配置bash[root@web01 ~]# systemctl daemon-reload
-
启动服务
二:运行 Java 代码
1)概述
❓为什么源代码不能直接运行?
- Java 源代码(.java 文件) 只是文本文件,需要先通过 编译 转换为字节码(.class 文件),再打包成 war 包 或 jar 包,才能在对应环境中运行。
常见 Java 软件包形式
软件包类型 | 运行方式 | 说明 | 应用场景 |
---|---|---|---|
WAR 包 | 放置在 Java 动态服务器 (如 Tomcat)的 webapps/ 目录下,Tomcat 会自动解压、加载、运行 |
适用于 Web 应用,功能较复杂 | Web 系统、企业应用 |
JAR 包 | 不依赖 Tomcat 等容器,直接使用命令运行:java -jar xxx.jar |
只需 JDK 环境即可运行 | 独立工具类应用、微服务、小型项目 |
2)案例一:war 包
需求:运行 memtest.war 包案例,放到 webapps 目录,然后访问即可
-
上传
war
包bash[root@web01 software]# rz
-
移动
war
包到webapps
目录下bash[root@web01 ~]# mv /opt/software/memtest.war /opt/module/tomcat-8.5.87/webapps/
-
浏览器访问
http://192.168.2.104:8080/memtest/meminfo.jsp
3)案例二:jar 包
需求:运行指定的jar包
-
上传
jar
包bash[root@web01 software]# rz
-
创建项目目录
bash[root@web01 ~]# mkdir /opt/module/ngxweb
-
执行
jar
包,后台运行-
-Dfile.encoding=UTF-8
:-D
用来定义 JVM 系统属性 。file.encoding=UTF-8
表示运行时使用 UTF-8 编码,避免中文乱码问题。 -
--server.port=8848
:指定程序运行的 HTTP 服务端口号 为8848
。 -
-project.home=/opt/module/ngxweb/
:指定应用的 工作目录 或 项目根目录。
bash[root@web01 ~]# nohup java -jar -Dfile.encoding=UTF-8 /opt/software/nginxWebUI-3.4.0.jar --server.port=8848 --project.home=/opt/module/ngxweb/ &> /dev/null &
-
-
浏览器访问
http://192.168.2.104:8848/adminPage/login
三:Tomcat 管理端
1)概述
Tomcat 管理端:通过 Web 页面管理、查看 Tomcat 信息。
使用场景:调优或调试时临时开启,生产环境中通常关闭。
访问入口 :默认只允许 127.0.0.1
访问
2)开启管理端功能
-
修改配置文件
tomcat-users.xml
设置了用户
tomcat
,拥有 manager-gui 和 admin-gui 权限。bash[root@web01 ~]# vim /opt/moduletomcat-8.5.87/conf/tomcat-users.xml
bash<role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
-
重启
Tomcat
bash[root@web01 ~]# systemctl restart tomcat
-
本地访问
-u
:指定用户名和密码bash[root@web01 ~]# curl -u tomcat:tomcat http://127.0.0.1:8080/manager/status
-
修改访问限制代码 (默认只允许
127.0.0.1
访问)👉 实际效果:把文件中写死的
127
(通常是127.0.0.1
限制本地访问)替换成\d+
,从而允许匹配 任意数字 IP 地址bash[root@web01 tomcat-8.5.87]# sed -i 's#127#\\d+#g' \ webapps/host-manager/META-INF/context.xml \ webapps/host-manager/WEB-INF/manager.xml \ webapps/manager/META-INF/context.xml
-
远程访问
总结
📌 本节重点回顾
-
systemctl 化管理
-
二进制安装的软件也能通过自定义 systemd unit 文件纳入 systemctl 管理。
-
流程:确认路径 → 创建用户 → 编写 unit 文件 → systemctl daemon-reload → 启动服务。
-
-
运行 Java 代码
-
WAR 包:放入 Tomcat webapps/ 目录,自动解压并运行,适合 Web 应用。
-
JAR 包:直接用 java -jar 运行,可通过 nohup 后台执行,适合独立微服务/工具类应用。
-
-
Tomcat 管理端
-
默认只允许本机访问,生产环境建议关闭。
-
开启方式:配置 tomcat-users.xml → 添加用户和权限 → 修改访问限制规则。
-
常用于调试、监控或临时管理。
-
✅ 至此,你已经掌握了 如何将 Tomcat 纳入系统服务管理、如何运行常见 Java 包、以及如何启用 Tomcat 管理端。
下一节我们将深入 server.xml 配置解析与集群化部署,带你了解 Tomcat 的核心配置与企业级架构方案。