- 准备环境:安装操作系统、Java 开发工具包 和 Web 服务器/应用服务器。
- 部署 Web 应用:将你的 Java Web 应用(通常是 WAR 文件)部署到服务器上。
- 配置服务器:配置端口、虚拟主机等。
- 启动与维护:启动服务器,并学会如何管理其生命周期。
下面我将为你提供一个详细、分步的指南,以最主流和推荐的组合 Ubuntu + JDK 17 + Nginx + Tomcat 10 为例,进行讲解。

场景选择:Nginx + Tomcat (推荐)
这是一个非常流行且强大的组合,被称为“动静分离”架构。
- Tomcat:作为 Java Web 容器,负责运行你的 Java 代码(Servlet, JSP),它是应用服务器。
- Nginx:作为反向代理和静态资源服务器,它接收来自外部的所有请求,然后将动态请求(如
.jsp,.do)转发给 Tomcat 处理,而直接自己处理静态请求(如.css,.js,.jpg,.png)。
优点:
- 高性能:Nginx 在处理静态文件和高并发连接方面远超 Tomcat。
- 稳定性:Tomcat 专注于处理复杂的 Java 业务逻辑,避免了被静态请求拖垮。
- 安全性:Nginx 可以作为一道防火墙,隐藏 Tomcat 的具体细节。
第一步:准备 Linux 环境 (以 Ubuntu 22.04 为例)
你需要一个可以访问的 Linux 服务器,你可以使用云服务器(如阿里云、腾讯云)或者虚拟机(如 VirtualBox, VMware)。
-
更新系统软件包 打开终端,执行以下命令:
(图片来源网络,侵删)sudo apt update sudo apt upgrade -y
-
安装 JDK (Java Development Kit) Tomcat 运行需要 Java 环境,我们推荐安装最新的 LTS 版本。
# 安装 OpenJDK 17 sudo apt install openjdk-17-jdk -y # 验证安装 java -version # 应该显示类似 openjdk version "17.0.x" 的信息
-
设置 JAVA_HOME 环境变量 很多应用(包括 Tomcat)需要这个变量来定位 JDK 安装路径。
# 查找 JDK 的实际安装路径 # 通常是 /usr/lib/jvm/java-17-openjdk-amd64 sudo update-alternatives --config java # 编辑环境变量配置文件 sudo nano /etc/environment
在文件末尾添加以下内容(请将路径替换为你自己的实际路径):
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64" PATH="$JAVA_HOME/bin:$PATH"
按
Ctrl + X,然后按Y保存并退出。
(图片来源网络,侵删)使环境变量立即生效:
source /etc/environment
第二步:安装和配置 Tomcat
-
下载 Tomcat 访问 Tomcat 官网下载页面,下载最新的 Core 版本(Tomcat 10),我们使用
wget命令下载。# 假设下载 Tomcat 10.1.x wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.x/bin/apache-tomcat-10.1.x.tar.gz
注意:请将
1.x替换为最新的稳定版本号。 -
解压并移动 Tomcat
# 解压 tar -zxvf apache-tomcat-10.1.x.tar.gz # 创建一个通用的目录来存放 Tomcat sudo mkdir -p /opt/tomcat # 将解压后的文件夹移动到 /opt/tomcat 并重命名 sudo mv apache-tomcat-10.1.x /opt/tomcat/tomcat10 # 设置目录所有者,避免每次都用 root 操作 sudo chown -R $USER:$USER /opt/tomcat/tomcat10
-
配置 Tomcat 环境变量 同样编辑
/etc/environment文件(或~/.bashrc只对当前用户生效):sudo nano /etc/environment
在文件中添加
CATALINA_HOME:JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64" CATALINA_HOME="/opt/tomcat/tomcat10" PATH="$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH"
保存并退出,然后执行
source /etc/environment使其生效。 -
启动 Tomcat 并测试
# 进入 Tomcat 的 bin 目录 cd /opt/tomcat/tomcat10/bin # 启动 Tomcat ./startup.sh
你会看到类似
Using CATALINA_BASE: ...的输出。检查 Tomcat 是否在监听 8080 端口:
netstat -tuln | grep 8080 # 或者使用 ss 命令 ss -tuln | grep 8080
如果看到
0.0.0:8080或::8080,说明启动成功。在浏览器中访问
http://<你的服务器IP地址>:8080,你应该能看到 Tomcat 的欢迎页面。 -
创建 Tomcat 服务 (Systemd) 为了方便管理(开机自启、重启、停止等),我们将其注册为系统服务。
sudo nano /etc/systemd/system/tomcat10.service
[Unit] Description=Apache Tomcat 10 After=network.target [Service] Type=oneshot User=$USER # 使用你的当前用户 Group=$USER Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" Environment="CATALINA_HOME=/opt/tomcat/tomcat10" Environment="CATALINA_BASE=/opt/tomcat/tomcat10" ExecStart=/opt/tomcat/tomcat10/bin/startup.sh ExecStop=/opt/tomcat/tomcat10/bin/shutdown.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target
保存并退出 (
Ctrl+X,Y)。现在你可以使用
systemctl命令来管理 Tomcat 了:# 重新加载 systemd 配置 sudo systemctl daemon-reload # 启动 Tomcat 服务 sudo systemctl start tomcat10 # 设置开机自启 sudo systemctl enable tomcat10 # 查看服务状态 sudo systemctl status tomcat10
第三步:安装和配置 Nginx
-
安装 Nginx
sudo apt install nginx -y
-
配置 Nginx 反向代理 我们将为你的 Web 应用创建一个配置文件,假设你的域名是
www.yourdomain.com。# 创建一个新的配置文件 sudo nano /etc/nginx/sites-available/yourdomain
粘贴以下配置:
server { listen 80; server_name www.yourdomain.com; # 替换成你的域名或 IP # 访问日志和错误日志 access_log /var/log/nginx/yourdomain.access.log; error_log /var/log/nginx/yourdomain.error.log; # 静态资源由 Nginx 直接处理 # 假设你的应用 WAR 包名为 myapp.war,解压后 WEB-INF 目录下的静态文件路径为 /myapp/ location /static/ { alias /opt/tomcat/tomcat10/webapps/myapp/static/; expires 30d; # 缓存30天 } # 所有其他请求都转发给 Tomcat location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }说明:
server_name:替换成你的实际域名或 IP 地址。- `location
