peixue-dev/peidu/Archive/一次性文件/[一次性]后端JAR包部署指南-2026-01-25.md

6.2 KiB

后端JAR包部署指南

📦 准备工作

1. 打包后端项目

在本地执行:

cd peidu/backend
mvn clean package -DskipTests

打包完成后,JAR文件位置:

  • peidu/backend/target/peidu-backend-1.0.0.jar

🚀 部署到服务器

方法1: 使用宝塔面板上传(推荐)

步骤1: 上传JAR包

  1. 打开宝塔面板
  2. 进入文件管理
  3. 创建目录: /www/server/java/peidu/
  4. 上传 peidu-backend-1.0.0.jar 到该目录

步骤2: 创建启动脚本

/www/server/java/peidu/ 目录创建 start.sh:

#!/bin/bash

# 应用名称
APP_NAME=peidu-backend-1.0.0.jar

# 应用目录
APP_DIR=/www/server/java/peidu

# JVM参数
JVM_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"

# 日志目录
LOG_DIR=$APP_DIR/logs
mkdir -p $LOG_DIR

# 启动应用
cd $APP_DIR
nohup java $JVM_OPTS -jar $APP_NAME \
  --spring.profiles.active=prod \
  > $LOG_DIR/app.log 2>&1 &

echo $! > $APP_DIR/app.pid
echo "应用启动成功! PID: $(cat $APP_DIR/app.pid)"

步骤3: 创建停止脚本

/www/server/java/peidu/ 目录创建 stop.sh:

#!/bin/bash

APP_DIR=/www/server/java/peidu
PID_FILE=$APP_DIR/app.pid

if [ -f $PID_FILE ]; then
  PID=$(cat $PID_FILE)
  echo "正在停止应用 (PID: $PID)..."
  kill $PID
  rm -f $PID_FILE
  echo "应用已停止"
else
  echo "应用未运行"
fi

步骤4: 创建重启脚本

/www/server/java/peidu/ 目录创建 restart.sh:

#!/bin/bash

APP_DIR=/www/server/java/peidu

echo "正在重启应用..."
$APP_DIR/stop.sh
sleep 3
$APP_DIR/start.sh

步骤5: 设置脚本权限

在宝塔终端执行:

cd /www/server/java/peidu
chmod +x start.sh stop.sh restart.sh

步骤6: 启动应用

cd /www/server/java/peidu
./start.sh

步骤7: 查看日志

# 实时查看日志
tail -f /www/server/java/peidu/logs/app.log

# 查看最近100行日志
tail -n 100 /www/server/java/peidu/logs/app.log

方法2: 使用宝塔Java项目管理器(更简单)

步骤1: 安装Java项目管理器

  1. 打开宝塔面板
  2. 软件商店 → 搜索"Java项目管理器"
  3. 点击安装

步骤2: 添加Java项目

  1. 打开Java项目管理器

  2. 点击"添加项目"

  3. 填写信息:

    • 项目名称: peidu-backend
    • 项目路径: /www/server/java/peidu
    • JAR文件: peidu-backend-1.0.0.jar
    • 启动端口: 8089
    • JVM参数: -Xms512m -Xmx1024m
    • 运行参数: --spring.profiles.active=prod
  4. 点击"启动项目"


🔍 验证部署

1. 检查进程是否运行

ps aux | grep peidu-backend

应该看到类似输出:

root     12345  0.5  5.2 2345678 123456 ?  Sl   19:00   0:05 java -jar peidu-backend-1.0.0.jar

2. 检查端口是否监听

netstat -tlnp | grep 8089

应该看到:

tcp6       0      0 :::8089                 :::*                    LISTEN      12345/java

3. 测试API接口

# 测试健康检查接口
curl http://localhost:8089/api/health

# 或者测试登录接口
curl -X POST http://localhost:8089/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"phone":"13800138001","password":"123456"}'

⚙️ 配置文件

application-prod.yml

确保后端项目中有 src/main/resources/application-prod.yml:

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/peixue?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 你的数据库密码
    driver-class-name: com.mysql.cj.jdbc.Driver

  redis:
    host: localhost
    port: 6379
    password: 你的Redis密码(如果有)
    database: 0

logging:
  level:
    root: INFO
    com.peidu: DEBUG
  file:
    name: /www/server/java/peidu/logs/app.log

🔧 常用命令

启动应用

cd /www/server/java/peidu
./start.sh

停止应用

cd /www/server/java/peidu
./stop.sh

重启应用

cd /www/server/java/peidu
./restart.sh

查看实时日志

tail -f /www/server/java/peidu/logs/app.log

查看应用状态

ps aux | grep peidu-backend

查看端口占用

netstat -tlnp | grep 8080

🐛 常见问题

1. 端口被占用

问题: 启动时提示端口8089已被占用

解决:

# 查找占用端口的进程
lsof -i:8089

# 杀死进程
kill -9 进程ID

2. 内存不足

问题: 应用启动后自动退出,日志显示内存不足

解决: 修改 start.sh 中的JVM参数:

JVM_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC"

3. 数据库连接失败

问题: 日志显示无法连接数据库

解决:

  1. 检查数据库是否运行: systemctl status mysql
  2. 检查数据库密码是否正确
  3. 检查数据库是否允许本地连接

4. 应用无法访问

问题: 外网无法访问应用

解决:

  1. 检查防火墙: firewall-cmd --list-ports
  2. 开放端口: firewall-cmd --add-port=8089/tcp --permanent
  3. 重载防火墙: firewall-cmd --reload

📊 监控和维护

查看应用日志

# 查看最新日志
tail -n 100 /www/server/java/peidu/logs/app.log

# 实时监控日志
tail -f /www/server/java/peidu/logs/app.log

# 搜索错误日志
grep "ERROR" /www/server/java/peidu/logs/app.log

查看系统资源

# 查看内存使用
free -h

# 查看CPU使用
top

# 查看磁盘使用
df -h

🔄 更新部署

当需要更新应用时:

# 1. 停止应用
cd /www/server/java/peidu
./stop.sh

# 2. 备份旧版本
mv peidu-backend-1.0.0.jar peidu-backend-1.0.0.jar.bak

# 3. 上传新版本JAR包到该目录

# 4. 启动应用
./start.sh

# 5. 查看日志确认启动成功
tail -f logs/app.log

📝 注意事项

  1. 数据库配置: 确保 application-prod.yml 中的数据库配置正确
  2. 端口配置: 确保端口8080未被占用,或修改为其他端口
  3. 日志管理: 定期清理日志文件,避免占用过多磁盘空间
  4. 备份: 部署前备份数据库和旧版本JAR包
  5. 监控: 定期查看日志,及时发现和解决问题

创建时间: 2026-01-25 服务器: px.ddn-ai.cloud (124.222.253.158) 应用端口: 8089 部署目录: /www/server/java/peidu/