# 后端JAR包部署指南 ## 📦 准备工作 ### 1. 打包后端项目 在本地执行: ```bash 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`: ```bash #!/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`: ```bash #!/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`: ```bash #!/bin/bash APP_DIR=/www/server/java/peidu echo "正在重启应用..." $APP_DIR/stop.sh sleep 3 $APP_DIR/start.sh ``` #### 步骤5: 设置脚本权限 在宝塔终端执行: ```bash cd /www/server/java/peidu chmod +x start.sh stop.sh restart.sh ``` #### 步骤6: 启动应用 ```bash cd /www/server/java/peidu ./start.sh ``` #### 步骤7: 查看日志 ```bash # 实时查看日志 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. 检查进程是否运行 ```bash 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. 检查端口是否监听 ```bash netstat -tlnp | grep 8089 ``` 应该看到: ``` tcp6 0 0 :::8089 :::* LISTEN 12345/java ``` ### 3. 测试API接口 ```bash # 测试健康检查接口 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`: ```yaml 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 ``` --- ## 🔧 常用命令 ### 启动应用 ```bash cd /www/server/java/peidu ./start.sh ``` ### 停止应用 ```bash cd /www/server/java/peidu ./stop.sh ``` ### 重启应用 ```bash cd /www/server/java/peidu ./restart.sh ``` ### 查看实时日志 ```bash tail -f /www/server/java/peidu/logs/app.log ``` ### 查看应用状态 ```bash ps aux | grep peidu-backend ``` ### 查看端口占用 ```bash netstat -tlnp | grep 8080 ``` --- ## 🐛 常见问题 ### 1. 端口被占用 **问题**: 启动时提示端口8089已被占用 **解决**: ```bash # 查找占用端口的进程 lsof -i:8089 # 杀死进程 kill -9 进程ID ``` ### 2. 内存不足 **问题**: 应用启动后自动退出,日志显示内存不足 **解决**: 修改 `start.sh` 中的JVM参数: ```bash 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` --- ## 📊 监控和维护 ### 查看应用日志 ```bash # 查看最新日志 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 ``` ### 查看系统资源 ```bash # 查看内存使用 free -h # 查看CPU使用 top # 查看磁盘使用 df -h ``` --- ## 🔄 更新部署 当需要更新应用时: ```bash # 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/