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

365 lines
6.2 KiB
Markdown

# 后端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/