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

相关推荐

  • 高防服务器弹性防护峰值如何测试?高防服务器防护原理是什么

    通过模拟真实DDoS攻击流量,验证防护带宽的动态扩容能力与业务连续性,确保在突发流量洪峰下业务不中断、数据不丢失,在数字化业务日益复杂的今天,网络安全不再是锦上添花,而是生存底线,许多企业在遭遇攻击时,第一反应往往是惊慌失措,因为传统的静态防护配置无法应对瞬息万变的攻击手段,高防服务器的价值,正是在于其“弹性……

    2026年6月16日
    1300
  • DV SSL证书一年多少钱?申请DV证书需要多少钱

    DV SSL证书一年的价格通常在几十元到几百元人民币之间,具体取决于品牌商、购买渠道以及是否包含续费优惠,对于个人博客或小型企业官网,选择性价比高的入门级证书即可满足基本加密需求,在数字化时代,网站安全不再是大型企业的专利,对于刚起步的个人站长、小微企业主或是临时活动页面来说,部署SSL证书是建立用户信任的第一……

    2026年6月19日
    700
  • 服务器带宽跑满了怎么办?如何快速有效解决?

    服务器带宽跑满的核心应对策略在于迅速排查占用源头与实施流量管控优化,并建立长效的带宽预警机制,当服务器带宽跑满时,最直接的后果是网站访问变慢、甚至服务不可用,导致用户流失,解决这一问题不能仅靠“加带宽”这一种手段,必须遵循“排查-优化-扩容-防护”的闭环逻辑,才能实现成本与性能的最佳平衡, 迅速诊断:精准定位带……

    2026年3月4日
    11800
  • 服务器带宽配置选错了?服务器带宽多少合适才不卡

    网站访问卡顿、加载缓慢,绝大多数情况下并非服务器整体性能不足,而是带宽配置与实际业务流量模型不匹配,这是许多企业在IT基础设施建设中最容易忽视的“隐形瓶颈”,核心结论非常明确:错误的带宽配置会导致数据传输通道拥堵,直接造成用户端体验极差,进而流失客户,影响业务转化,解决这一问题,必须从业务类型、并发量测算、带宽……

    2026年3月5日
    9100
  • html如何查询数据库并输出?前端页面调用数据库接口

    HTML本身无法直接查询数据库,必须通过后端语言(如PHP、Python、Java)或前端代理服务器作为中间层,将用户请求转化为数据库指令,再将结果渲染为HTML页面返回,很多人误以为写几行HTML代码就能直接从数据库拉取数据,这其实是把“展示层”和“逻辑层”混淆了,HTML只是网页的骨架,它负责告诉浏览器“这……

    服务器宽带 2026年6月9日
    2200
  • 企业用服务器带宽多大合适?企业服务器带宽一般多大比较好

    企业选择服务器带宽并非“越大越好”,而是“越匹配越优”,核心结论是:企业服务器带宽的选择应遵循“并发峰值计算法则”与“业务类型匹配原则”,一般建议以5Mbps为起步基准,电商、视频等高并发业务需按1:10的冗余比例进行配置,确保带宽利用率维持在70%的安全线以内, 盲目追求大带宽不仅造成成本浪费,更可能因配置不……

    2026年3月3日
    11200
  • 带宽1G流量大概多少钱?1G带宽流量价格贵不贵

    带宽1G流量的价格并非固定不变,其核心成本取决于计费模式、线路质量、地域节点以及服务商品牌,综合当前市场行情,带宽1G流量大概多少钱的答案通常在2元/GB至5元/GB之间波动,如果采用共享带宽流量计费,成本可低至几百元每月;若是独享精品BGP线路,月租可能高达数千甚至上万元,对于大多数中小企业而言,选择像简米科……

    2026年3月6日
    10900
  • html5电商网站模板怎么选?2026最新免费源码推荐

    HTML5电商网站模板是构建现代化移动端优先电商平台的最佳选择,它能显著提升加载速度、优化用户体验并增强搜索引擎排名,是2026年企业数字化转型的核心基础设施,在移动互联网渗透率极高的当下,传统的PC端电商模式已难以满足用户碎片化的购物需求,用户不再愿意等待漫长的页面加载,也不习惯在小屏幕上缩放浏览,HTML5……

    2026年6月12日
    4300
  • Putty和Xshell哪个好用?Putty和Xshell区别是什么

    对于个人开发者或小型团队,Xshell凭借极致的用户体验和免费家用授权成为首选;而对于追求极致轻量、零成本且习惯命令行的高级运维,Putty依然是不可替代的经典工具,在服务器管理的日常工作中,终端模拟器是连接本地与远程主机的桥梁,面对Putty和Xshell这两款老牌软件,许多新手往往陷入选择困难,这不仅仅是软……

    2026年6月19日
    1100
  • Nginx反向代理怎么配置?Nginx反向代理服务器配置教程

    Nginx反向代理的核心在于通过proxy_pass指令将客户端请求转发至后端服务器,同时利用缓存和负载均衡提升访问速度与系统稳定性,这是构建高性能Web架构的基础,在2026年的互联网基础设施环境中,静态资源与动态业务分离已成为标准配置,许多开发者在初期搭建服务时,往往只关注代码逻辑,却忽略了前端入口的性能优……

    2026年6月19日
    800

发表回复

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