news 2026/11/4 8:41:56

openEuler 24.03 LTS部署Tomcat 9完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
openEuler 24.03 LTS部署Tomcat 9完整指南

1. 项目概述

最近在 openEuler 24.03 LTS 上部署 Tomcat 9 时,发现网上针对这个特定组合的完整教程并不多。作为国产操作系统的忠实用户,我决定把这次部署的完整过程记录下来,希望能帮助到同样在使用 openEuler 的开发者们。

openEuler 24.03 LTS 是华为推出的企业级 Linux 发行版的最新长期支持版本,而 Tomcat 9 则是目前企业 Java Web 应用部署的主流选择之一。这个组合特别适合需要国产化替代方案的企业环境。下面我会详细介绍从系统准备到 Tomcat 服务上线的完整流程。

2. 环境准备

2.1 系统基础配置

首先确保你的 openEuler 24.03 LTS 系统已经完成基础配置:

sudo dnf update -y sudo dnf install -y vim wget curl net-tools

提示:openEuler 使用 dnf 作为包管理器,与 CentOS/RHEL 8+ 保持一致。

2.2 Java 环境安装

Tomcat 9 需要 Java SE 8 或更高版本。推荐安装 OpenJDK 11:

sudo dnf install -y java-11-openjdk java-11-openjdk-devel

验证安装:

java -version

预期输出类似:

openjdk version "11.0.xx" OpenJDK Runtime Environment (build 11.0.xx+xx) OpenJDK 64-Bit Server VM (build 11.0.xx+xx, mixed mode)

3. Tomcat 9 安装与配置

3.1 下载 Tomcat 9

建议从 Apache 官网获取最新稳定版:

wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.xx/bin/apache-tomcat-9.0.xx.tar.gz

解压到 /opt 目录:

sudo tar -xzf apache-tomcat-9.0.xx.tar.gz -C /opt sudo ln -s /opt/apache-tomcat-9.0.xx /opt/tomcat

3.2 创建专用用户

为安全考虑,创建专用 tomcat 用户:

sudo useradd -r -m -d /opt/tomcat -s /bin/false tomcat sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.xx

3.3 环境变量配置

编辑 /etc/profile.d/tomcat.sh:

export CATALINA_HOME=/opt/tomcat export PATH=$PATH:$CATALINA_HOME/bin

使配置生效:

source /etc/profile.d/tomcat.sh

4. 服务配置与优化

4.1 创建 systemd 服务

创建 /etc/systemd/system/tomcat.service:

[Unit] Description=Apache Tomcat 9 After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh Restart=on-failure [Install] WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reload sudo systemctl enable --now tomcat

4.2 内存配置调整

编辑 /opt/tomcat/bin/setenv.sh(需新建):

export JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"

注意:内存参数应根据服务器实际配置调整,生产环境建议 Xmx 设置为可用内存的 70-80%。

5. 安全加固

5.1 禁用管理界面

编辑 /opt/tomcat/webapps/manager/META-INF/context.xml,注释掉 Valve 部分:

<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

5.2 修改默认端口

编辑 /opt/tomcat/conf/server.xml,修改 Connector 端口:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

建议改为非标准端口如 8888。

6. 防火墙配置

openEuler 使用 firewalld:

sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload

7. 验证部署

访问 http://服务器IP:8080 应该能看到 Tomcat 默认页面。

创建测试页面:

echo "<h1>Hello openEuler!</h1>" > /opt/tomcat/webapps/ROOT/test.jsp

访问 http://服务器IP:8080/test.jsp 验证。

8. 常见问题排查

8.1 启动失败排查

查看日志:

journalctl -u tomcat -f

或

tail -f /opt/tomcat/logs/catalina.out

常见问题:

  • 端口冲突:netstat -tulnp | grep java
  • 权限问题:确保 /opt/tomcat 及其子目录属于 tomcat 用户

8.2 性能调优建议

  • 连接数调整:修改 server.xml 中的 maxThreads(默认 200)
  • 启用 APR 连接器:需安装 tomcat-native
  • 启用压缩:在 Connector 配置中添加 compression="on"

9. 备份与维护

9.1 定期备份配置

建议备份以下目录:

  • /opt/tomcat/conf
  • /opt/tomcat/webapps

9.2 日志轮转

配置 logrotate:

/opt/tomcat/logs/catalina.out { daily rotate 30 missingok compress copytruncate }

10. 升级注意事项

升级 Tomcat 时:

  1. 备份配置和 webapps
  2. 停止服务
  3. 解压新版本到新目录
  4. 复制旧配置到新目录
  5. 更新符号链接
  6. 启动服务测试

在实际生产环境中,我建议先在测试环境验证升级过程,确保所有应用兼容新版本。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 8:41:13

Java教研室管理系统开发实践与架构设计

1. 项目背景与核心价值 教研室作为高校教学科研的基本单元&#xff0c;日常管理工作往往面临信息分散、流程繁琐的痛点。记得去年协助某高校整理教师科研成果时&#xff0c;光是核对不同版本的Excel表格就花了整整两周时间。这种低效的手工管理方式&#xff0c;正是我们开发这套…

作者头像 李华
网站建设 2026/11/4 8:41:12

虚拟化显卡三大路线:3D加速、PCIe直通与vGPU选型指南

1. 三种“用上显卡”的物理事实&#xff0c;混淆了方向就会白折腾一整天 很多人第一次在虚拟化环境里接独显&#xff0c;脑子里只有一个模糊的念头&#xff1a;让虚拟机“用到”显卡。可实际动手才发现&#xff0c;“用到”这两个字的含义差得极远。有人装了 VMware Workstatio…

作者头像 李华
网站建设 2026/11/4 8:41:06

中国大模型反向收费美国巨头:技术逻辑与商业落地全解析

1. 从“白嫖”到“付费”&#xff1a;一个信号背后的产业逻辑 “这一次&#xff0c;中国模型开始收美国巨头的钱”——这句话放在三年前&#xff0c;圈内人听了大概率会笑出声。那时候国产大模型还在追赶GPT-3.5的水平&#xff0c;API价格战打得头破血流&#xff0c;恨不得倒贴…

作者头像 李华
网站建设 2026/11/4 8:40:57

MySQL TRUNCATE TABLE命令详解与性能优化

1. TRUNCATE TABLE命令的本质解析 在数据库日常维护中&#xff0c;清空表数据是高频操作。相比DELETE语句&#xff0c;TRUNCATE TABLE以更高效的方式实现数据清除&#xff0c;其本质是通过DDL&#xff08;数据定义语言&#xff09;操作重置表的存储结构。当执行 TRUNCATE TABL…

作者头像 李华
网站建设 2026/11/4 8:40:45

ZCode开源事件深度解析:AI编程Agent架构与三步部署实战

1. 从“偷传代码”到开源&#xff1a;ZCode 事件的来龙去脉1.1 一场风波如何把内部工具推到了台前“偷传代码”这四个字在开发者圈子里炸开的时候&#xff0c;我正在用智谱的 GLM 接口调一个 Agent 项目。当时群里有人甩了张截图&#xff0c;说 ZCode 在后台把用户代码往某个地…

作者头像 李华
网站建设 2026/11/4 8:39:00

LeetCode哈希表应用:四道经典题目解析

1. 算法训练营第五天题目解析今天要啃下四道经典LeetCode题目&#xff1a;242题有效的字母异位词、349题两个数组的交集、202题快乐数&#xff0c;以及1题两数之和。这几道题覆盖了哈希表应用的多种典型场景&#xff0c;从字符串处理到数值计算&#xff0c;都是面试中的高频考点…

作者头像 李华