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/article/405697.html

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

相关推荐

  • 互联网BI数据分析软件哪个好用?2026年最新排名

    互联网BI数据分析软件的核心价值在于将杂乱的业务数据转化为可视化的决策依据,通过自助式拖拽操作,让非技术人员也能在几分钟内完成复杂报表制作,从而显著提升企业运营效率并降低对IT部门的依赖,在数字化转型的深水区,企业不再满足于简单的数据记录,而是渴望从数据中挖掘增长机会,传统的Excel处理模式在面对海量数据时显……

    2026年6月2日
    3600
  • 虚拟主机建站访问慢是为什么?虚拟主机访问速度慢怎么办

    虚拟主机建站访问慢,核心原因通常集中在服务器物理距离远、线路拥堵以及主机商资源超售导致的性能瓶颈,优化需从选择优质线路和精简网站代码入手,很多站长发现,明明网站内容很优质,图片也压缩过了,但打开速度依然让人抓狂,这往往不是你的代码写得不好,而是背后的“地基”没打好,虚拟主机就像合租公寓,你和其他几十甚至上百个网……

    2026年6月18日
    2110
  • html5如何删除本地存储?清除localStorage缓存方法

    HTML5删除本地存储最直接的方式是使用localStorage.removeItem(‘key’)删除指定项,或使用localStorage.clear()清空所有数据,而sessionStorage则会在浏览器标签页关闭后自动失效,无需手动删除,在现代Web开发中,本地存储是提升用户体验的关键技术,但数据清……

    2026年6月7日
    4200
  • 会议在线预约系统怎么选,哪个系统更实用更便宜

    会议在线预约系统是解决企业会议管理混乱的高效工具,选择时重点看功能匹配度、稳定性和性价比,而非单纯看价格高低,为什么你需要一个会议预约系统过去我们靠邮件或微信群预约会议室,结果经常撞车,或者临时发现有设备故障,这种效率损耗在团队协作中会被放大,会议预约系统的核心价值在于将会议室资源数字化,让预约、审批、通知、设……

    2026年7月31日
    100
  • 如何用Access构建数据库系统?access数据库设计教程

    利用Access构建数据库系统的核心在于利用其可视化界面快速搭建表结构,并通过查询与窗体实现数据交互,适合中小企业进行轻量级数据管理,但需注意其并发性能局限,Access不仅仅是一个简单的电子表格替代品,它是微软Office家族中唯一具备完整关系型数据库管理功能(RDBMS)的工具,对于许多非专业程序员或小型团……

    2026年7月1日
    1010
  • 站长必知的30条Linux命令有哪些?Linux常用命令大全及用法

    服务器CPU负载高但top显示正常,可能是什么原因?这可能是I/O等待过高导致的,使用iostat -x 1查看磁盘I/O统计,若`%util`接近100%或`await`值很高,说明磁盘瓶颈,此时CPU负载高是等待I/O完成的结果,而非计算密集型任务,行业共识认为,优化数据库查询或升级SSD硬盘是根本解决之道……

    2026年6月18日
    2000
  • net域名续费多少钱一年?域名续费价格是多少

    .net域名续费价格通常在50元至100元人民币之间,具体金额取决于注册商优惠力度、汇率波动及是否购买增值保护服务,建议提前30天操作以避免域名过期删除的风险,在域名管理的日常维护中,.net域名的续费往往被许多站长和企业IT负责人视为一项“例行公事”,但其中隐藏的成本陷阱和策略选择,直接影响了网站运营的连续性……

    2026年6月24日
    11210
  • WordPress网站如何禁用XML-RPC?php禁用xmlrpc.php方法

    禁用XML-RPC是提升WordPress安全性与加载速度的关键一步,建议通过插件一键屏蔽或修改服务器配置文件来实现,XML-RPC这个看似古老的技术协议,如今已成为黑客攻击WordPress站点的主要入口,它允许远程客户端通过HTTP协议访问网站数据,原本用于博客聚合和移动应用连接,但现在更多被用于暴力破解密……

    2026年6月22日
    3100
  • html段落文字间距怎么调?css设置行高和字间距的方法

    HTML段落文字间距的核心在于通过CSS属性控制行高(line-height)和段间距(margin/padding),通常建议行高设为字体大小的1.5到1.8倍,段间距设为字体大小的1.2到1.5倍,以平衡阅读舒适度与页面空间利用率,在网页设计的视觉层级中,排版不仅仅是字体的堆砌,更是用户阅读体验的基石,许多……

    服务器宽带 2026年6月7日
    4000
  • HTML5简易小游戏怎么做?有哪些好玩的HTML5小游戏推荐

    HTML5简易小游戏无需安装、即点即玩,是移动端流量变现与前端技术练手的最佳切入点,核心优势在于跨平台兼容性与开发成本极低,在移动互联网流量红利见顶的当下,轻量级应用成为获取用户注意力的新宠,HTML5技术凭借其“一次开发,多端运行”的特性,彻底打破了原生App的高门槛,对于开发者而言,这不仅是技术的实践,更是……

    2026年6月7日
    3710

发表回复

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

评论列表(1条)

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

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