# 情绪博物馆后端服务部署说明 ## 文件说明 - `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 ``` ### 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/ ```