后端管理模块部署
This commit is contained in:
@@ -0,0 +1,276 @@
|
||||
# 情绪博物馆管理后台部署说明
|
||||
|
||||
## 📋 概述
|
||||
|
||||
本文档说明如何部署情绪博物馆管理后台到服务器 `101.200.208.45`。
|
||||
|
||||
管理后台将部署到 `/data/www/emotion-museum-admin/` 目录,通过 `http://101.200.208.45/emotion-museum-admin/` 访问。
|
||||
|
||||
## 🚀 快速部署
|
||||
|
||||
### 1. 执行部署脚本
|
||||
|
||||
```bash
|
||||
# 进入管理后台目录
|
||||
cd web-admin
|
||||
|
||||
# 执行部署脚本
|
||||
bash deploy.sh
|
||||
```
|
||||
|
||||
### 2. 访问管理后台
|
||||
|
||||
部署完成后,可以通过以下地址访问:
|
||||
|
||||
- **管理后台**: http://101.200.208.45/emotion-museum-admin/
|
||||
- **登录页面**: http://101.200.208.45/emotion-museum-admin/login
|
||||
|
||||
## 📊 部署流程详解
|
||||
|
||||
### 自动化部署流程
|
||||
|
||||
1. **环境检查**: 检查 Node.js 和 npm 是否安装
|
||||
2. **项目构建**: 执行 `npm run build` 构建项目
|
||||
3. **文件验证**: 验证 `dist` 目录是否生成
|
||||
4. **文件上传**: 使用 SCP 上传文件到服务器
|
||||
5. **权限设置**: 设置文件权限为 755
|
||||
6. **部署验证**: 确认文件上传成功
|
||||
|
||||
### 构建配置
|
||||
|
||||
- **构建命令**: `npm run build`
|
||||
- **输出目录**: `dist/`
|
||||
- **基础路径**: `/emotion-museum-admin/`
|
||||
- **路由模式**: HTML5 History 模式
|
||||
|
||||
## 🔧 配置说明
|
||||
|
||||
### Nginx 配置
|
||||
|
||||
管理后台的 Nginx 配置已添加到 `conf/emotion-museum.conf` 文件中:
|
||||
|
||||
```nginx
|
||||
# 管理后台应用路径
|
||||
location /emotion-museum-admin/ {
|
||||
alias /data/www/emotion-museum-admin/;
|
||||
autoindex off;
|
||||
|
||||
# 处理 Vue Router 的 history 模式
|
||||
try_files $uri $uri/ /emotion-museum-admin/index.html;
|
||||
|
||||
# HTML 文件不缓存
|
||||
location ~ \.html?$ {
|
||||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||||
add_header Pragma "no-cache";
|
||||
add_header Expires "0";
|
||||
}
|
||||
|
||||
# 静态资源缓存 1 年
|
||||
location ~ \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
|
||||
add_header Cache-Control "public, max-age=31536000, immutable";
|
||||
expires 1y;
|
||||
}
|
||||
}
|
||||
|
||||
# 处理不带末尾斜杠的请求
|
||||
location = /emotion-museum-admin {
|
||||
rewrite ^(.*)$ $1/ permanent;
|
||||
}
|
||||
```
|
||||
|
||||
### 路由配置
|
||||
|
||||
管理后台使用 Vue Router 的 History 模式,配置了基础路径:
|
||||
|
||||
```typescript
|
||||
const router = createRouter({
|
||||
history: createWebHistory('/emotion-museum-admin/'),
|
||||
routes
|
||||
})
|
||||
```
|
||||
|
||||
### Vite 配置
|
||||
|
||||
构建配置中设置了正确的基础路径:
|
||||
|
||||
```typescript
|
||||
export default defineConfig({
|
||||
// ...其他配置
|
||||
base: '/emotion-museum-admin/',
|
||||
build: {
|
||||
outDir: 'dist',
|
||||
assetsDir: 'assets',
|
||||
sourcemap: false,
|
||||
chunkSizeWarningLimit: 1500
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
## ✅ 验证部署
|
||||
|
||||
### 1. 检查文件是否上传成功
|
||||
|
||||
```bash
|
||||
# SSH 连接到服务器
|
||||
ssh root@101.200.208.45
|
||||
|
||||
# 检查文件是否存在
|
||||
ls -lh /data/www/emotion-museum-admin/
|
||||
```
|
||||
|
||||
### 2. 检查 Nginx 配置
|
||||
|
||||
```bash
|
||||
# 测试 Nginx 配置
|
||||
nginx -t
|
||||
|
||||
# 重新加载 Nginx
|
||||
nginx -s reload
|
||||
```
|
||||
|
||||
### 3. 访问测试
|
||||
|
||||
在浏览器中访问以下地址:
|
||||
|
||||
- http://101.200.208.45/emotion-museum-admin/
|
||||
- http://101.200.208.45/emotion-museum-admin/login
|
||||
|
||||
## 🔄 更新部署
|
||||
|
||||
### 代码更新后重新部署
|
||||
|
||||
```bash
|
||||
# 1. 进入管理后台目录
|
||||
cd web-admin
|
||||
|
||||
# 2. 拉取最新代码(如果使用 Git)
|
||||
git pull
|
||||
|
||||
# 3. 安装依赖(如果有新依赖)
|
||||
npm install
|
||||
|
||||
# 4. 执行部署
|
||||
bash deploy.sh
|
||||
```
|
||||
|
||||
### 仅更新前端资源
|
||||
|
||||
如果只是修改了前端代码,无需重启后端服务:
|
||||
|
||||
```bash
|
||||
# 执行部署脚本即可
|
||||
bash deploy.sh
|
||||
```
|
||||
|
||||
## 🛠️ 故障排查
|
||||
|
||||
### 问题 1: 构建失败
|
||||
|
||||
**现象**: 执行 `npm run build` 失败
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 1. 清理依赖
|
||||
rm -rf node_modules package-lock.json
|
||||
|
||||
# 2. 重新安装依赖
|
||||
npm install
|
||||
|
||||
# 3. 重新构建
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 问题 2: 上传失败
|
||||
|
||||
**现象**: SCP 上传文件失败
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 1. 检查 SSH 连接
|
||||
ssh root@101.200.208.45 "echo 'SSH 连接成功'"
|
||||
|
||||
# 2. 检查目标目录权限
|
||||
ssh root@101.200.208.45 "ls -ld /data/www/"
|
||||
|
||||
# 3. 手动创建目录
|
||||
ssh root@101.200.208.45 "mkdir -p /data/www/emotion-museum-admin"
|
||||
```
|
||||
|
||||
### 问题 3: 访问 404
|
||||
|
||||
**现象**: 访问管理后台返回 404
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 1. 检查文件是否存在
|
||||
ssh root@101.200.208.45 "ls -lh /data/www/emotion-museum-admin/"
|
||||
|
||||
# 2. 检查 Nginx 配置
|
||||
ssh root@101.200.208.45 "nginx -t"
|
||||
|
||||
# 3. 重新加载 Nginx
|
||||
ssh root@101.200.208.45 "nginx -s reload"
|
||||
```
|
||||
|
||||
### 问题 4: 路由不工作
|
||||
|
||||
**现象**: 直接访问子路由返回 404
|
||||
|
||||
**解决方案**:
|
||||
1. 确认 Nginx 配置中的 `try_files` 指令正确
|
||||
2. 确认路由配置中的 `base` 路径正确
|
||||
3. 清除浏览器缓存
|
||||
|
||||
## 📱 功能说明
|
||||
|
||||
管理后台包含以下功能模块:
|
||||
|
||||
### 1. 仪表盘
|
||||
- 系统概览
|
||||
- 数据统计
|
||||
- 快速操作
|
||||
|
||||
### 2. 管理员管理
|
||||
- 管理员列表
|
||||
- 添加/编辑管理员
|
||||
- 权限管理
|
||||
|
||||
### 3. 用户管理
|
||||
- 用户列表
|
||||
- 用户详情
|
||||
- 用户统计
|
||||
|
||||
### 4. AI配置管理
|
||||
- AI配置列表
|
||||
- 配置创建/编辑
|
||||
- 接口测试
|
||||
- 流式响应测试
|
||||
|
||||
## 🔐 安全说明
|
||||
|
||||
### 访问控制
|
||||
|
||||
- 管理后台需要登录才能访问
|
||||
- 使用 JWT Token 进行身份验证
|
||||
- 自动跳转到登录页面
|
||||
|
||||
### 文件权限
|
||||
|
||||
- 部署文件权限设置为 755
|
||||
- 静态资源可公开访问
|
||||
- 敏感配置文件受保护
|
||||
|
||||
## 📞 支持
|
||||
|
||||
如有问题,请检查:
|
||||
|
||||
1. **部署脚本**: `web-admin/deploy.sh`
|
||||
2. **Nginx 配置**: `conf/emotion-museum.conf`
|
||||
3. **路由配置**: `web-admin/src/router/index.ts`
|
||||
4. **构建配置**: `web-admin/vite.config.ts`
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2025-10-30
|
||||
**版本**: 1.0
|
||||
**状态**: ✅ 已完成
|
||||
Reference in New Issue
Block a user