Ubuntu 20.04怎么安装配置Apache Tomcat?服务器部署教程

在Ubuntu 20.04服务器上部署Apache Tomcat,核心步骤是安装OpenJDK、下载Tomcat二进制包、配置systemd服务并放行防火墙端口,通常只需30分钟即可完成从环境搭建到应用部署的全过程。

Tomcat作为Java Web应用的事实标准服务器,其稳定性与灵活性深受开发者信赖,对于许多初次接触Linux服务器运维的工程师来说,如何在Ubuntu 20.04这一主流操作系统上从零搭建Tomcat环境,往往是一个既基础又关键的技能点,本文将通过实操视角,拆解安装、配置及优化的完整链路,确保你能在真实生产场景中快速落地。

Tomcat+war包的部署流程
加载中
Tomcat+war包的部署流程

Ubuntu 20.04安装Tomcat前环境准备

在正式安装Tomcat之前,必须确保Java运行环境(JRE)或Java开发工具包(JDK)已就绪,Tomcat本身是一个Java程序,它依赖于JVM(Java虚拟机)来执行字节码,Ubuntu 20.04默认的软件源中包含了OpenJDK,这是最稳定且免费的选择。

验证Java环境状态

通过终端检查系统是否已安装Java,输入以下命令:

java -version

如果系统返回OpenJDK版本信息,说明环境已就绪,若未安装,需执行更新源并安装OpenJDK 11或17(推荐LTS版本):

sudo apt update
sudo apt install openjdk-11-jdk

业内专家指出,选择JDK版本时应与你的Java应用程序编译版本保持一致,以避免运行时兼容性问题,使用Java 8编译的应用,最好运行在JDK 8或11上,虽然高版本JDK通常向下兼容,但特定API的行为差异可能导致潜在风险。

创建专用系统用户

出于安全考虑,不建议使用root用户运行Tomcat服务,创建一个名为tomcat的系统用户和组,专门用于运行该服务。

sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

这里使用/bin/false作为shell,意味着该用户无法直接登录系统,从而降低了安全风险。

Ubuntu 20.04怎么安装配置Apache Tomcat?服务器部署教程

/opt/tomcat将作为Tomcat的安装目录。

下载与解压Tomcat二进制包

Tomcat的官方下载页面提供了最新的稳定版,截至2026年,Tomcat 9和Tomcat 10是主流选择,Tomcat 9支持Servlet 4.0和JSP 2.3,而Tomcat 10则全面转向Jakarta EE规范,包名从javax变更为jakarta,如果你的旧应用依赖javax.servlet,请选择Tomcat 9;如果是新项目,建议直接使用Tomcat 10以符合最新行业标准。

获取安装包

进入/tmp目录下载最新版本,以Tomcat 9为例:

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

请将0.x替换为实际版本号,下载完成后,将文件移动到/opt目录并解压:

sudo mv apache-tomcat-9.0.x.tar.gz /opt/
sudo tar -xf /opt/apache-tomcat-9.0.x.tar.gz -C /opt/tomcat --strip-components=1

设置权限

确保tomcat用户对安装目录拥有完全控制权:

sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod -R 750 /opt/tomcat

这一步至关重要,许多新手在此处忽略权限设置,导致后续启动服务时出现“Permission denied”错误。

配置Systemd服务实现开机自启

为了让Tomcat像其他系统服务一样被管理,我们需要创建systemd服务单元文件,这比直接使用startup.sh脚本更稳定,且支持开机自启和日志管理。

创建服务文件

在/etc/systemd/system/目录下创建tomcat.service文件:

sudo nano /etc/systemd/system/tomcat.service

注意根据实际安装路径调整CATALINA_HOME:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib

Ubuntu 20.04怎么安装配置Apache Tomcat?服务器部署教程

/jvm/java-11-openjdk-amd64" Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid" Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_BASE=/opt/tomcat" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target

这里设置了-Xmx1024M,即最大堆内存为1GB,对于小型应用,这个配置足够;若部署大型应用,需根据服务器物理内存调整-Xmx参数。

启动并验证服务

重新加载systemd配置,启动Tomcat并设置开机自启:

sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat
sudo systemctl status tomcat

若状态显示为active (running),说明服务已正常启动。

防火墙配置与外部访问测试

Ubuntu默认使用UFW(Uncomplicated Firewall)管理防火墙,Tomcat默认监听8080端口,需放行该端口以允许外部访问。

放行端口

sudo ufw allow 8080/tcp
sudo ufw reload

访问测试

在浏览器中输入http://你的服务器IP:8080,如果看到Tomcat的默认欢迎页面,说明安装成功,你可以尝试部署一个简单的WAR包或静态HTML文件到/opt/tomcat/webapps/目录下,验证应用加载情况。

对于关注Ubuntu 20.04安装Tomcat详细步骤的用户,以上流程已覆盖核心环节,若需进一步配置SSL加密或反向代理,可结合Nginx使用,但这属于进阶优化范畴。

常见故障排查与优化建议

在实际运维中,可能会遇到一些常见问题,以下是基于行业共识认为的高频问题及解决方案。

服务无法启动

检查日志是排查问题的第一步,Tomcat的日志位于/opt/tomcat/logs/目录下,特别是catalina.out文件,若看到Java版本错误,请检查

Ubuntu 20.04怎么安装配置Apache Tomcat?服务器部署教程

JAVA_HOME路径是否正确。

内存溢出

若应用复杂,可能出现OutOfMemoryError,此时需调整CATALINA_OPTS中的-Xmx参数,据工信部数据,近年来Java应用对内存的需求呈上升趋势,建议根据实际监控数据动态调整,而非盲目增加。

安全加固

默认安装的Tomcat包含管理界面(Manager App),在生产环境中应禁用或限制访问,编辑/opt/tomcat/conf/tomcat-users.xml,移除默认的manager-gui角色,或设置强密码并限制IP访问。

Ubuntu 20.04安装Tomcat常见问题解答

Ubuntu 20.04安装Tomcat时如何选择合适的JDK版本?

选择JDK版本应主要依据你的Java应用程序编译版本,若应用使用Java 8编译,建议使用OpenJDK 11,它在长期支持(LTS)和兼容性之间取得了良好平衡,若应用已迁移至Jakarta EE规范(如使用jakarta.servlet而非javax.servlet),则必须搭配Tomcat 10或11,并相应使用JDK 11或更高版本,避免混用不兼容的JDK与Tomcat版本,否则会导致类加载失败。

Ubuntu 20.04安装Tomcat后访问8080端口超时怎么办?

首先确认Tomcat服务状态,执行sudo systemctl status tomcat查看是否运行,检查UFW防火墙规则,确保8080端口已放行,若防火墙正常,检查Tomcat配置文件server.xml中的Connector端口是否被修改,查看catalina.out日志,确认是否有绑定端口失败的错误,多数情况下,防火墙未放行或服务未启动是主要原因。

Ubuntu 20.04安装Tomcat与Nginx反向代理相比有何优劣?

直接访问Tomcat 8080端口配置简单,适合测试环境或内部应用,但Nginx作为反向代理,能更好地处理静态资源、SSL终止和负载均衡,减轻Tomcat负担,Nginx配置稍复杂,需额外安装和配置upstream模块,对于高并发生产环境,业内普遍认为Nginx+Tomcat架构更为稳健,能提供更高的可用性和安全性。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/ubuntu-20-04%e6%80%8e%e4%b9%88%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%aeapache-tomcat%ef%bc%9f%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%83%a8%e7%bd%b2%e6%95%99%e7%a8%8b/

赞 (0)
腾讯云CI盲水印如何防盗图?图片版权保护技术
上一篇 2026年6月21日 03:25
大模型的SimCLR对比学习是什么?SimCLR对比学习算法原理详解
下一篇 2026年6月21日 03:26

相关推荐

  • 成都GPU服务器租用指南,训练卡与推理卡怎么选,多少钱?

    成都GPU服务器租用,核心结论是:训练看算力峰值,推理看延迟和吞吐,显存大小决定你能不能跑,而不是决定你跑多快,选错类型,轻则多花一倍预算,重则模型根本跑不起来,这篇文章直接给你一套在成都本地租GPU服务器的筛选逻辑,从硬件参数到机房选择,一次说透,训练卡与推理卡的核心差异:先看设计目标算力精度与吞吐量的取舍逻……

    服务器宽带 2026年8月10日
    2400
  • 顶级机架服务器怎么选?,机架服务器哪个牌子好

    顶级机架服务器集中在戴尔、惠普企业、联想、浪潮、超聚变与超微等品牌的主力2U机型上,具体选型取决于你的虚拟化规模、GPU卡数量和运维习惯,先拆解“顶级”的定义:算力密度、稳定性与售后机架服务器的“顶级”不在于单一跑分,而在于长期满载时的稳定性和厂商的企业级服务响应,业内专家指出,评判一台顶级机架服务器,主要看三……

    服务器宽带 2026年10月17日
    000
  • 广州800g高防dns解析原理是什么,高防DNS解析如何防御攻击

    广州800g高防DNS解析的核心在于构建一个基于超大带宽储备与分布式智能调度相结合的防御闭环体系,其本质并非单纯的域名解析,而是一道能够抵御T级DDoS攻击的流量清洗与智能路由屏障,通过将DNS查询与防御机制深度融合,利用800Gbps的高带宽节点直接吸纳海量攻击流量,并结合智能算法将正常访问请求精准调度至可用……

    2026年4月1日
    9300
  • 如何快速删除Access数据库重复记录?access数据库重复记录删除器

    Access数据库重复记录删除器并非单一软件,而是指利用Access内置查询或VBA代码来识别并清理冗余数据的技术方案,核心在于通过SQL语句或唯一索引强制去重,而非依赖第三方付费工具,在处理企业级或部门级数据时,Access因其轻量级和易上手的特点,常被用于中小型业务系统,随着数据录入量的增加,重复记录成为常……

    2026年7月1日
    1900
  • 网页授权域名是哪个?,如何设置微信授权域名

    网页授权域名指的是你在微信公众平台或开放平台后台配置的、用于接收微信OAuth2.0授权回调的完整URL中的域名部分,直白说,当用户点击“微信登录”后,微信服务器会把用户带回你的网站,这个“带回”动作要跳转到的地址,其域名必须是你在后台白名单里填写的那个,否则微信会直接拦截并报错,什么时候会用到这个域名这个域名……

    2026年9月1日
    600
  • 怎么查域名是否被注册,凡科域名查询方法有哪些?

    查询域名是否被注册,最直接的方法是使用凡科网等域名注册平台自带的域名查询工具,输入你心仪的名字和域名后缀,系统会实时反馈该域名是否已被占用,如果显示“已注册”,说明别人捷足先登;如果提示“可以注册”,你就能立刻完成购买,这个操作流程非常简单,但很多新手朋友在查找入口时容易犯迷糊,或者因为搜索结果不透明而走弯路……

    2026年9月4日
    400
  • 广州ECS云服务器管理源码怎么用?ECS云服务器管理系统源码下载

    高效、安全且可二次开发的广州ECS云服务器管理源码,是企业构建私有云平台、实现降本增效的核心技术资产,选择经过商业验证的成熟源码方案,能缩短90%的研发周期并规避底层架构风险,在数字化转型的浪潮中,广州作为华南地区的科技枢纽,对云服务管理的精细化要求日益提升,传统的公有云控制台往往无法满足企业定制化的业务流程……

    2026年3月30日
    9200
  • 广州devops系统哪家好?广州devops系统服务商排名推荐

    广州地区的企业在数字化转型浪潮中,构建高效、自动化的软件交付体系已成为提升核心竞争力的关键决策,实施本地化的DevOps解决方案,能够帮助企业将软件交付周期缩短50%以上,同时显著降低运维成本与故障率,实现业务价值的快速流转, 这一结论基于大量珠三角地区企业的实践验证,通过打通开发、测试、运维的部门壁垒,构建标……

    2026年3月31日
    8900
  • WordPress如何添加术语表?网站添加在线词典教程

    在WordPress网站中添加术语表或词典部分,最高效且稳定的方案是使用支持自定义字段和短代码的插件(如Custom Post Type UI配合TablePress),通过建立自定义文章类型存储术语,并利用短代码在前端统一展示,无需修改核心代码即可实现动态更新,很多站长在搭建垂直行业网站时,常遇到用户频繁询问……

    2026年6月25日
    1500
  • access数据库怎么设置?access数据库连接字符串怎么写

    Access数据库设置的核心在于通过“关系视图”建立表间关联,并配合“查询设计”实现数据自动化处理,这是提升中小型业务系统效率的关键,很多初次接触Access的朋友,面对密密麻麻的表结构往往无从下手,Access不仅仅是一个简单的电子表格替代品,它是一个功能完备的关系型数据库管理系统,对于中小企业、个人开发者或……

    2026年7月3日
    500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(1条)

  • 唐思睿
    唐思睿 2026年7月9日 22:54

    哈哈,这文章写得挺详细的,不过我有点好奇,为啥不提一下Tomcat的优化配置呢?毕竟对于高并发场景来说,这点很重要啊。