365 lines
6.2 KiB
Markdown
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/
|