205 lines
4.0 KiB
Markdown
205 lines
4.0 KiB
Markdown
# 情绪博物馆后端服务部署说明
|
|
|
|
## 文件说明
|
|
|
|
- `deploy.sh` - 本地打包脚本
|
|
- `deploy-server.sh` - 服务器部署脚本
|
|
- `/data/programs/emotion-museum/emotion-simple-0.0.1-SNAPSHOT.jar` - 打包后的 JAR 文件
|
|
|
|
## 部署步骤
|
|
|
|
### 1. 本地打包
|
|
|
|
```bash
|
|
# 在 backend-single 目录下执行
|
|
./deploy.sh
|
|
```
|
|
|
|
### 2. 上传到服务器
|
|
|
|
将以下文件上传到服务器:
|
|
- `/data/programs/emotion-museum/emotion-simple-0.0.1-SNAPSHOT.jar`
|
|
- `deploy-server.sh`
|
|
|
|
### 3. 服务器部署
|
|
|
|
```bash
|
|
# 给脚本添加执行权限
|
|
chmod +x deploy-server.sh
|
|
|
|
# 部署服务(默认操作)
|
|
./deploy-server.sh
|
|
|
|
# 或者指定操作
|
|
./deploy-server.sh deploy
|
|
```
|
|
|
|
## 脚本功能
|
|
|
|
### 主要功能
|
|
|
|
- **自动停止旧服务** - 安全停止正在运行的服务
|
|
- **启动新服务** - 使用生产环境配置启动服务
|
|
- **日志管理** - 日志保存到 `/data/logs/emotion-museum/single`
|
|
- **状态监控** - 检查服务启动状态和端口监听
|
|
- **进程管理** - 使用 PID 文件管理进程
|
|
|
|
### 命令行参数
|
|
|
|
```bash
|
|
./deploy-server.sh [命令]
|
|
|
|
可用命令:
|
|
deploy - 部署服务(默认)
|
|
start - 启动服务
|
|
stop - 停止服务
|
|
restart - 重启服务
|
|
status - 查看服务状态
|
|
logs - 查看实时日志
|
|
```
|
|
|
|
## 配置说明
|
|
|
|
### 环境变量
|
|
|
|
脚本中的主要配置:
|
|
|
|
```bash
|
|
APP_NAME="emotion-museum-single" # 应用名称
|
|
JAR_NAME="emotion-simple-0.0.1-SNAPSHOT.jar" # JAR 文件名
|
|
LOG_DIR="/data/logs/emotion-museum/single" # 日志目录
|
|
JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC..." # JVM 参数
|
|
```
|
|
|
|
### 日志文件
|
|
|
|
- `application.log` - 应用运行日志
|
|
- `startup.log` - 启动日志
|
|
- `heapdump.hprof` - 内存溢出时的堆转储文件
|
|
|
|
### 生产环境配置
|
|
|
|
服务启动时使用以下配置:
|
|
- `spring.profiles.active=prod` - 激活生产环境配置
|
|
- `logging.file.path=/data/logs/emotion-museum/single` - 日志路径
|
|
- `logging.file.name=/data/logs/emotion-museum/single/application.log` - 日志文件名
|
|
|
|
## 使用示例
|
|
|
|
### 首次部署
|
|
|
|
```bash
|
|
# 1. 上传文件到服务器
|
|
scp /data/programs/emotion-museum/emotion-simple-0.0.1-SNAPSHOT.jar user@server:/path/to/app/
|
|
scp deploy-server.sh user@server:/path/to/app/
|
|
|
|
# 2. 登录服务器
|
|
ssh user@server
|
|
|
|
# 3. 进入应用目录
|
|
cd /path/to/app
|
|
|
|
# 4. 添加执行权限
|
|
chmod +x deploy-server.sh
|
|
|
|
# 5. 部署服务
|
|
./deploy-server.sh
|
|
```
|
|
|
|
### 日常维护
|
|
|
|
```bash
|
|
# 查看服务状态
|
|
./deploy-server.sh status
|
|
|
|
# 查看实时日志
|
|
./deploy-server.sh logs
|
|
|
|
# 重启服务
|
|
./deploy-server.sh restart
|
|
|
|
# 停止服务
|
|
./deploy-server.sh stop
|
|
```
|
|
|
|
## 注意事项
|
|
|
|
### 1. 权限要求
|
|
|
|
- 确保脚本有执行权限
|
|
- 确保有权限创建 `/data/logs/emotion-museum/single` 目录
|
|
- 确保有权限写入日志文件
|
|
|
|
### 2. 端口配置
|
|
|
|
- 脚本默认检查 8080 端口
|
|
- 如果使用其他端口,请修改脚本中的端口检查逻辑
|
|
|
|
### 3. Java 环境
|
|
|
|
- 确保服务器已安装 Java 8 或更高版本
|
|
- 确保 `java` 命令在 PATH 中可用
|
|
|
|
### 4. 内存配置
|
|
|
|
- 默认配置:最小 512MB,最大 1024MB
|
|
- 根据服务器配置调整 `JAVA_OPTS` 中的内存参数
|
|
|
|
### 5. 日志轮转
|
|
|
|
建议配置日志轮转,避免日志文件过大:
|
|
|
|
```bash
|
|
# 在 /etc/logrotate.d/ 下创建配置文件
|
|
/data/logs/emotion-museum/single/*.log {
|
|
daily
|
|
rotate 30
|
|
compress
|
|
delaycompress
|
|
missingok
|
|
notifempty
|
|
create 644 root root
|
|
}
|
|
```
|
|
|
|
## 故障排查
|
|
|
|
### 1. 服务启动失败
|
|
|
|
```bash
|
|
# 查看启动日志
|
|
tail -f /data/logs/emotion-museum/single/startup.log
|
|
|
|
# 查看应用日志
|
|
tail -f /data/logs/emotion-museum/single/application.log
|
|
```
|
|
|
|
### 2. 端口被占用
|
|
|
|
```bash
|
|
# 查看端口占用情况
|
|
netstat -tlnp | grep :8080
|
|
|
|
# 杀死占用端口的进程
|
|
kill -9 <PID>
|
|
```
|
|
|
|
### 3. 内存不足
|
|
|
|
```bash
|
|
# 查看内存使用情况
|
|
free -h
|
|
|
|
# 调整 JAVA_OPTS 中的内存参数
|
|
```
|
|
|
|
### 4. 权限问题
|
|
|
|
```bash
|
|
# 检查目录权限
|
|
ls -la /data/logs/emotion-museum/single/
|
|
|
|
# 修改权限
|
|
chmod 755 /data/logs/emotion-museum/single/
|
|
chown -R user:group /data/logs/emotion-museum/single/
|
|
``` |