本文是一篇从 0 到可用的实战型技术博文,完整记录在 Ubuntu 服务器 + 宝塔面板 环境下,搭建 JPOM Server 端 的全过程,并覆盖:
宝塔同时安装 JDK8 & JDK17
系统默认 JDK17,但 JPOM 使用 JDK8 运行
通过 修改 JPOM 的 sh 启动脚本 指定 JDK
宝塔中配置 域名访问 + SSL
JPOM 中配置 后端 Java 构建(多环境变量)
JPOM 中配置 前端 Vue 构建
远程服务器(SSH)部署 的完整思路
适合人群:
Java 后端 / 运维 / 全栈
正在用宝塔,但还没把 CI/CD 跑顺的人
一、服务器与基础环境说明
1. 服务器环境
系统:Ubuntu 20.04 / 22.04(均适用)
面板:宝塔 Linux 面板(正式版)
运行服务:JPOM Server
2. JDK 环境规划(重点)
⚠️ JPOM 默认推荐 JDK8,如果你系统默认是 JDK17,一定要单独指定 JPOM 使用 JDK8,否则容易出现兼容问题。
二、宝塔中安装 JDK8 & JDK17
1. 宝塔安装 JDK
进入宝塔后台:
【软件商店】→ 搜索
JDK
分别安装:
JDK 1.8
JDK 17
安装完成后,宝塔一般会放在类似目录:
/usr/lib/jvm/java-8-openjdk-amd64
/usr/lib/jvm/java-17-openjdk-amd64
实际路径以你服务器为准,可以通过宝塔终端确认
2. 设置系统默认 JDK 为 17
update-alternatives --config java
选择 JDK17 对应编号即可。
验证:
java -version
输出类似:
openjdk version "17.x"
三、安装 JPOM Server
1. 下载 JPOM Server
mkdir -p /opt/jpom
cd /opt/jpom
wget https://d.jpom.top/server-release.jar -O jpom-server.jar
2. 官方启动方式(默认问题)
java -jar jpom-server.jar
❌ 问题在于:
这里用的是 系统默认 JDK(17)
但 JPOM 推荐 JDK8
所以我们必须 改启动脚本。
四、修改 JPOM 的 sh 启动脚本(核心)
1. 创建启动脚本
cd /opt/jpom
vi start.sh
2. 错误示例(不要这样)
java -jar jpom-server.jar
这样写会直接使用系统默认 JDK(17)
3. 正确写法:显式指定 JDK8
#!/bin/bash
# ================== JDK 配置 ==================
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
JAVA_BIN=$JAVA_HOME/bin/java
# ================== 应用配置 ==================
APP_HOME=$(cd "$(dirname "$0")" && pwd)
JAR_NAME=jpom-server.jar
# ================== 启动 ==================
cd $APP_HOME
$JAVA_BIN -jar $JAR_NAME \
--spring.profiles.active=prod \
> jpom.log 2>&1 &
echo "JPOM Server started with JDK8"
赋权:
chmod +x start.sh
启动:
./start.sh
验证:
ps -ef | grep jpom
4. 验证 JPOM 使用的 JDK
ls -l /proc/进程ID/exe
确认路径指向 JDK8 即可。
五、宝塔中配置域名访问 JPOM(含 SSL)
1. 新建站点
宝塔后台:
【网站】→【添加站点】
域名:
jpom.xxx.comPHP:不需要
根目录:随便(不使用)
2. 配置反向代理
进入站点设置 →【反向代理】→ 添加
2122 为 JPOM 默认端口
3. 配置文件添加配置
location / {
proxy_pass http://127.0.0.1:2122;
proxy_http_version 1.1;
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;
# WebSocket(JPOM 必须)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}4. 开启 SSL
站点设置 →【SSL】
选择 Let's Encrypt
申请证书
开启 强制 HTTPS
访问:
https://jpom.xxx.com
即可进入 JPOM 后台。
六、JPOM 中配置构建 Java 后端服务
1. 创建构建项目
【构建】→【新增构建】
2. 常见 Java 构建配置
构建方式:
Maven源码方式:Git
分支:master / main
3. 多环境变量配置(重点)
在 构建环境变量 中配置:
SPRING_PROFILES_ACTIVE=prod
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
PATH=$JAVA_HOME/bin:$PATH
⚠️ JPOM 本身用 JDK8,不代表你构建的服务只能用 JDK8
4. 构建命令示例
mvn clean package -Dmaven.test.skip=true
5. 构建产物发布
选择 jar
发布到指定服务器 / 节点
七、JPOM 构建前端 Vue 项目
1. 前端构建环境
节点需要安装:
node -v
npm -v
2. 构建命令示例
npm install
npm run build
3. 发布 dist 到 Nginx
rm -rf /www/wwwroot/web/dist/*
cp -r dist/* /www/wwwroot/web/dist/
八、服务不在本机:SSH 部署方案
1. 添加 SSH 节点
【节点管理】→【新增节点】
填写:
IP
SSH 端口
用户名 / 密码 或 密钥
2. 发布到远程服务器
构建完成后
选择 发布到指定节点
3. 远程服务器上需要搭建 jpom agent 客户端,这样才能 ssh 远程部署
九、常见坑总结
JPOM Server ≠ 构建 JDK
一定要在 sh 中写死
JAVA_HOME宝塔反代端口别写错
前端构建注意 Node 版本
SSH 节点记得测试连接
十、结语
到这里,一套 宝塔 + JPOM + 多 JDK + 前后端构建 + 远程部署 的体系就完整跑通了。
如果你之前:
构建混乱
JDK 版本打架
手动部署到崩溃
那 JPOM + 宝塔,真的值得一套。
后续可以继续扩展:
蓝盾 / GitLab CI 对接
多节点灰度发布
构建权限隔离
—— 写到这,已经值一个 👍 了 😄
评论区