6.2 KiB
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包
- 打开宝塔面板
- 进入文件管理
- 创建目录:
/www/server/java/peidu/ - 上传
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项目管理器
- 打开宝塔面板
- 软件商店 → 搜索"Java项目管理器"
- 点击安装
步骤2: 添加Java项目
-
打开Java项目管理器
-
点击"添加项目"
-
填写信息:
- 项目名称:
peidu-backend - 项目路径:
/www/server/java/peidu - JAR文件:
peidu-backend-1.0.0.jar - 启动端口:
8089 - JVM参数:
-Xms512m -Xmx1024m - 运行参数:
--spring.profiles.active=prod
- 项目名称:
-
点击"启动项目"
🔍 验证部署
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. 数据库连接失败
问题: 日志显示无法连接数据库
解决:
- 检查数据库是否运行:
systemctl status mysql - 检查数据库密码是否正确
- 检查数据库是否允许本地连接
4. 应用无法访问
问题: 外网无法访问应用
解决:
- 检查防火墙:
firewall-cmd --list-ports - 开放端口:
firewall-cmd --add-port=8089/tcp --permanent - 重载防火墙:
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
📝 注意事项
- 数据库配置: 确保
application-prod.yml中的数据库配置正确 - 端口配置: 确保端口8080未被占用,或修改为其他端口
- 日志管理: 定期清理日志文件,避免占用过多磁盘空间
- 备份: 部署前备份数据库和旧版本JAR包
- 监控: 定期查看日志,及时发现和解决问题
创建时间: 2026-01-25 服务器: px.ddn-ai.cloud (124.222.253.158) 应用端口: 8089 部署目录: /www/server/java/peidu/