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://test.idctop.com/article/405697.html

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

相关推荐

  • 如何利用AWS提高大模型训练速度?AWS大模型训练加速技巧

    利用AWS提高大模型训练速度的核心在于:通过选择具备高带宽互联的实例族(如Trn1/Inf2)、配置EFA网络以及优化数据加载管道,可将训练效率提升数倍并显著降低总拥有成本,在2026年的AI基础设施环境中,大模型训练不再仅仅是堆砌显卡数量的游戏,而是对算力调度、网络吞吐和数据I/O的综合考验,许多团队在初期往……

    2026年6月25日
    1600
  • 高防服务器机房BGP多线优势是什么?BGP多线高防服务器租用费用

    高防服务器机房采用BGP多线接入,核心优势在于通过智能路由调度实现全国及海外用户的高速低延迟访问,同时具备抵御大规模DDoS攻击的能力,是保障业务稳定性的最佳选择,在2026年的互联网环境下,网络环境的复杂性远超以往,无论是电商大促期间的流量洪峰,还是游戏服开启新版本的瞬间爆发,亦或是企业核心数据中心的日常防护……

    2026年6月17日
    3100
  • 服务器带宽和流量什么关系?带宽越大流量越多吗?

    服务器带宽决定了数据传输的速度上限,而流量则是数据传输的累计总量,两者是“水管流速”与“流出水量”的因果关系,带宽越大,网站瞬间承载访问的能力越强,单位时间内产生的流量通常也越多;流量则是带宽在时间维度上的累积,二者共同决定了服务器的网络性能与运营成本, 对于企业建站而言,理解这一关系,是平衡性能体验与成本控制……

    2026年3月5日
    13600
  • CDN加速到底是啥意思?CDN加速对网站有什么作用

    CDN加速即内容分发网络,通过在全球部署节点将网站内容缓存至离用户最近的服务器,从而显著降低延迟、提升访问速度并保障高并发下的稳定性,想象一下,如果你开了一家位于北京总部的银行,但客户遍布全国甚至全球,当上海的客户来取钱时,如果必须跑回北京办理,不仅耗时耗力,一旦北京总部拥堵,整个业务就会瘫痪,CDN加速就像是……

    2026年6月23日
    2000
  • 什么是HTTPDNS?HTTPDNS使用指引和配置方法

    HTTPDNS通过绕过本地DNS解析,直接获取真实IP,能显著降低首屏加载时间并有效抵御DNS劫持与污染,是提升移动端网络体验的关键技术,在传统互联网架构中,用户访问网站通常依赖本地运营商的DNS服务器,这种模式虽然普及,却存在解析延迟高、易受劫持、无法精准调度等痛点,对于追求极致体验的应用开发者而言,引入HT……

    2026年6月5日
    3700
  • 服务器带宽费用明细,真实报价来了,服务器带宽一年多少钱

    服务器带宽的真实成本主要由线路质量、带宽模式(独享或共享)以及机房等级决定,目前市场主流报价区间跨度极大,从几百元每月到上万元每月不等,企业若想精准控制预算,必须穿透复杂的营销话术,直接对标底层资源成本,企业级独享带宽的真实采购成本,通常稳定在50元/Mbps/月至100元/Mbps/月之间,任何大幅低于此标准……

    2026年3月5日
    10600
  • hpz400支持服务器内存吗,hpz400能用服务器内存条吗

    惠普HP Z400工作站原生不支持现代服务器内存,仅支持DDR3 ECC Registered内存,强行混用会导致无法开机或硬件损坏,很多用户手里有一台闲置的HP Z400,想通过升级内存来榨干最后一点性能,或者误以为工作站就是服务器,试图插入服务器专用的ECC Registered内存条,这种想法很危险,不仅……

    2026年6月10日
    3700
  • Access查询如何添加新数据库?access添加外部数据源步骤

    在Access中向现有数据库添加新数据库,最核心的方法是使用“链接表”功能建立外部数据连接,或者通过“导入”功能将数据直接合并到当前数据库中,前者适合实时同步且保持数据源独立,后者适合一次性整合且提升查询速度,很多用户在使用Microsoft Access时,常遇到数据分散在多个文件中的情况,随着业务增长,单一……

    2026年7月1日
    1300
  • 服务器如何利用云解析和混合云解析,有哪些优势?

    服务器利用云解析实现混合云,核心是通过云解析的智能线路和健康检查,将用户请求动态分配到本地和云端服务器,在故障时自动切换,保障业务持续可用, 对于需要跨云部署或应对突发流量的场景,混合云解析是成本可控且效果显著的基础方案,服务器利用云解析到底能解决哪些问题?传统DNS解析就像一本静态电话簿,服务器IP写死了,一……

    2026年8月1日
    200
  • Member Pro插件如何用链接开通会员?开通会员后有哪些权益

    Member Pro插件通过生成包含特定参数的唯一授权链接,当用户在浏览器中点击该链接时,插件会自动识别参数并执行会员权益激活或续费操作,从而实现无需登录后台的自动化开通流程,这种基于链接的自动化机制,彻底改变了传统手动分配会员账号的低效模式,它让网站主能够像发送优惠券一样,精准地触达目标用户,对于依赖内容变现……

    2026年6月26日
    1700

发表回复

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

评论列表(1条)

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

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