Ubuntu 部署 JSP 完整流程:从 JDK、Tomcat 到 WAR 发布与 HTTPS

听雨眠
听雨眠
发布时间:2026-08-23| 143人浏览过
原创

前言

在 Ubuntu 上部署 JSP,核心步骤其实就是把 Java、Tomcat 和 WAR 发布流程理顺,但很多失败都出在环境验证、访问端口和部署方式理解不完整上。本文按实际落地顺序重写这套流程,保留命令、默认路径和配置位置,方便你快速判断是基础环境没配好,还是应用发布、外网访问或 HTTPS 接入环节出了问题。

在 Ubuntu 上部署 JSP,核心并不复杂,真正容易出问题的往往是环境没装全、Tomcat 路径没搞清,或者应用已经放上去却因为端口、权限和配置文件导致访问失败。下面按“环境准备、容器安装、应用部署、访问放行、上线加固、结果验证”这条路径梳理一遍,读完后你可以判断自己的部署卡在哪一层,也能直接照着命令完成一次可访问的 JSP 发布。

先更新 Ubuntu,减少依赖冲突

部署前先把系统软件包更新到最新状态,这一步很基础,但能明显减少后面安装 JDK、Tomcat 时的依赖问题。

sudo apt update && sudo apt upgrade -y

如果是刚初始化的新服务器,建议先完成这一步,再继续安装运行环境。

安装 JDK,确认 JSP 运行基础

JSP 运行依赖 Java 环境,因此第一项关键组件就是 JDK。这里沿用 Ubuntu 官方仓库中的 OpenJDK 11,兼顾稳定性和安装便利性。

sudo apt install openjdk-11-jdk -y

安装完成后,最好立刻检查 Java 运行时和编译器是否都已就绪:

java -version
# 查看Java运行时环境版本
javac -version
# 查看Java编译器版本(确认JDK安装)

如果后续需要在多版本 Java 之间切换,可以使用下面这条命令:

sudo update-alternatives --config java

安装 Tomcat,并确认服务已启动

Tomcat 是 JSP 应用最常见的运行容器。使用 Ubuntu 官方仓库中的 Tomcat 9,可以快速搭出稳定环境。

展示 Ubuntu 部署 JSP 时从系统更新到 Tomcat 可访问的基础环境搭建流程图
JSP 基础运行环境搭建先把系统、JDK 和 Tomcat 三层基础环境依次装好,再检查 8080 是否能返回默认页面。
sudo apt install tomcat9 -y

安装完成后,Tomcat 通常会自动启动。可以直接在本机检查 8080 端口上的默认页面是否能返回:

curl http://localhost:8080
# 应返回Tomcat默认页面

部署时要记住两个默认位置:

  • /var/lib/tomcat9:Tomcat 安装目录,其中 webapps 用来放应用
  • /etc/tomcat9:Tomcat 相关配置文件目录

可选:配置 Tomcat 环境变量

如果你需要更方便地在命令行里操作 Tomcat,或者后面要自定义路径,可以补上环境变量配置。编辑 /etc/profile:

sudo nano /etc/profile

在文件末尾加入:

export CATALINA_HOME=/var/lib/tomcat9
# Tomcat安装目录
export PATH=$CATALINA_HOME/bin:$PATH
# 添加Tomcat命令到PATH

保存后让配置立即生效:

source /etc/profile

然后验证命令是否可用:

startup.sh
# 启动Tomcat(需在CATALINA_HOME/bin目录下)
shutdown.sh
# 停止Tomcat

部署 JSP 应用:WAR 包是关键

Tomcat 部署 JSP 应用时,通常需要把项目打成 WAR 文件。假设当前应用包名为 myapp.war,常见做法有两种:图形界面上传,或直接复制到部署目录。

展示 WAR 包通过 Tomcat 管理界面或手动复制两种部署方式的对比信息图
WAR 部署方式对比同一个 WAR 包可以走图形界面上传,也可以直接进入 webapps 目录。

方式一:通过 Tomcat 管理界面上传

这种方式更适合刚接触 Tomcat 的用户,操作直观,也便于确认部署结果。

  • 浏览器访问 http://<服务器IP>:8080/manager/html
  • 输入管理员账号密码

如果管理账号尚未配置,需要修改 /etc/tomcat9/tomcat-users.xml,加入以下内容后重启 Tomcat:

<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>

之后在管理界面中选择 WAR 文件并点击部署即可。部署成功后,应用访问地址通常是:

http://<服务器IP>:8080/myapp

其中 myapp 对应 WAR 文件名去掉 .war 后缀后的路径。

方式二:手动复制到 webapps 目录

如果你要做脚本化部署、批量发布或远程自动化,这种方式更实用。

sudo cp /path/to/myapp.war /var/lib/tomcat9/webapps/

复制完成后,Tomcat 会自动解压并部署,访问路径与管理界面部署一致。

开放端口,确保外部能访问

如果服务器启用了 UFW 防火墙,仅本机部署成功还不够,外部流量仍可能被拦住。常见放行规则如下:

sudo ufw allow 80/tcp
# 允许HTTP
sudo ufw allow 443/tcp
# 允许HTTPS
sudo ufw reload
# 重新加载防火墙规则

如果当前仍打算直接通过 Tomcat 默认端口测试,也可以额外放行 8080:

sudo ufw allow 8080/tcp

实际生产环境中,更常见的做法是让外部只访问 80 和 443,再由 Nginx 反向代理到 8080。

可选:配合 Nginx 和 Certbot 启用 HTTPS

如果应用要对外提供正式服务,建议尽快启用 HTTPS。一个常见组合是 Nginx 反向代理 Tomcat,再用 Let's Encrypt 的免费证书完成 SSL 配置。

先安装 Certbot 和 Nginx:

sudo apt install certbot python3-certbot-nginx -y

然后申请并配置证书,把 your_domain.com 替换成自己的域名:

sudo certbot --nginx -d your_domain.com

完成后,Certbot 会自动调整 Nginx 配置,加入 443 监听,并把请求反向代理到 Tomcat 的 8080 端口。最后重启 Nginx:

sudo systemctl restart nginx

这时应用通常就能通过下面的地址访问,并自动跳转到 HTTPS:

https://your_domain.com

部署后怎么验证,404 又该查什么

不管你使用哪种部署方式,最后都需要通过浏览器直接访问应用 URL,确认 JSP 页面已经能正常返回。如果打开后出现 404,优先检查下面三项:

  • WAR 文件是否已经成功复制到 webapps 目录
  • 应用目录结构是否完整,例如 WEB-INF/web.xml 是否存在
  • Tomcat 服务是否仍在正常运行

Tomcat 运行状态可以这样查看:

sudo systemctl status tomcat9

如果服务正常、WAR 已部署、目录也没问题,但仍然无法访问,就需要继续排查域名解析、Nginx 代理配置或防火墙规则是否与当前访问方式一致。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。