5.4 KiB
5.4 KiB
情绪博物馆管理后台部署说明
📋 概述
本文档说明如何部署情绪博物馆管理后台到服务器 101.200.208.45。
管理后台将部署到 /data/www/emotion-museum-admin/ 目录,通过 http://101.200.208.45/emotion-museum-admin/ 访问。
🚀 快速部署
1. 执行部署脚本
# 进入管理后台目录
cd web-admin
# 执行部署脚本
bash deploy.sh
2. 访问管理后台
部署完成后,可以通过以下地址访问:
- 管理后台: http://101.200.208.45/emotion-museum-admin/
- 登录页面: http://101.200.208.45/emotion-museum-admin/login
📊 部署流程详解
自动化部署流程
- 环境检查: 检查 Node.js 和 npm 是否安装
- 项目构建: 执行
npm run build构建项目 - 文件验证: 验证
dist目录是否生成 - 文件上传: 使用 SCP 上传文件到服务器
- 权限设置: 设置文件权限为 755
- 部署验证: 确认文件上传成功
构建配置
- 构建命令:
npm run build - 输出目录:
dist/ - 基础路径:
/emotion-museum-admin/ - 路由模式: HTML5 History 模式
🔧 配置说明
Nginx 配置
管理后台的 Nginx 配置已添加到 conf/emotion-museum.conf 文件中:
# 管理后台应用路径
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 模式,配置了基础路径:
const router = createRouter({
history: createWebHistory('/emotion-museum-admin/'),
routes
})
Vite 配置
构建配置中设置了正确的基础路径:
export default defineConfig({
// ...其他配置
base: '/emotion-museum-admin/',
build: {
outDir: 'dist',
assetsDir: 'assets',
sourcemap: false,
chunkSizeWarningLimit: 1500
}
})
✅ 验证部署
1. 检查文件是否上传成功
# SSH 连接到服务器
ssh root@101.200.208.45
# 检查文件是否存在
ls -lh /data/www/emotion-museum-admin/
2. 检查 Nginx 配置
# 测试 Nginx 配置
nginx -t
# 重新加载 Nginx
nginx -s reload
3. 访问测试
在浏览器中访问以下地址:
🔄 更新部署
代码更新后重新部署
# 1. 进入管理后台目录
cd web-admin
# 2. 拉取最新代码(如果使用 Git)
git pull
# 3. 安装依赖(如果有新依赖)
npm install
# 4. 执行部署
bash deploy.sh
仅更新前端资源
如果只是修改了前端代码,无需重启后端服务:
# 执行部署脚本即可
bash deploy.sh
🛠️ 故障排查
问题 1: 构建失败
现象: 执行 npm run build 失败
解决方案:
# 1. 清理依赖
rm -rf node_modules package-lock.json
# 2. 重新安装依赖
npm install
# 3. 重新构建
npm run build
问题 2: 上传失败
现象: SCP 上传文件失败
解决方案:
# 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
解决方案:
# 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
解决方案:
- 确认 Nginx 配置中的
try_files指令正确 - 确认路由配置中的
base路径正确 - 清除浏览器缓存
📱 功能说明
管理后台包含以下功能模块:
1. 仪表盘
- 系统概览
- 数据统计
- 快速操作
2. 管理员管理
- 管理员列表
- 添加/编辑管理员
- 权限管理
3. 用户管理
- 用户列表
- 用户详情
- 用户统计
4. AI配置管理
- AI配置列表
- 配置创建/编辑
- 接口测试
- 流式响应测试
🔐 安全说明
访问控制
- 管理后台需要登录才能访问
- 使用 JWT Token 进行身份验证
- 自动跳转到登录页面
文件权限
- 部署文件权限设置为 755
- 静态资源可公开访问
- 敏感配置文件受保护
📞 支持
如有问题,请检查:
- 部署脚本:
web-admin/deploy.sh - Nginx 配置:
conf/emotion-museum.conf - 路由配置:
web-admin/src/router/index.ts - 构建配置:
web-admin/vite.config.ts
最后更新: 2025-10-30 版本: 1.0 状态: ✅ 已完成