219 lines
4.8 KiB
Markdown
219 lines
4.8 KiB
Markdown
# 紫光汇智 VDI 管理平台前端服务
|
||
|
||
## 项目简介
|
||
|
||
本项目是紫光汇智 VDI(虚拟桌面基础设施)管理平台的前端服务,负责为企业级桌面云环境提供高效、可靠的 Web 管理界面。系统支持多种操作系统镜像的管理、用户权限控制、桌面分配与监控等功能,助力企业实现桌面云的集中化、自动化运维。
|
||
|
||
## 主要功能
|
||
- 镜像管理:支持多种操作系统镜像的上传、下载、删除、版本管理
|
||
- 用户与权限管理:多角色权限分级,安全可靠
|
||
- 桌面分配与监控:支持桌面分配、状态监控、资源统计
|
||
- 登录认证:支持多种登录方式,安全便捷
|
||
- 响应式设计:适配 PC 和移动端
|
||
|
||
## 技术栈
|
||
- 前端框架:React + UmiJS + Ant Design
|
||
- 服务端:Node.js + Express
|
||
- 进程管理:PM2
|
||
- 容器化:Docker 支持
|
||
|
||
## 部署方式
|
||
|
||
### 1. 使用 Docker 部署
|
||
- 支持一键构建和运行 Docker 容器,适合云服务器、生产环境
|
||
- 详见下方 Docker 相关命令
|
||
|
||
### 2. 使用 PM2 部署
|
||
- 适合传统物理机或虚拟机环境,支持进程守护、日志管理
|
||
|
||
---
|
||
|
||
# VDI 管理平台 - 服务器部署
|
||
|
||
## 📋 概述
|
||
|
||
这是 VDI 管理平台的前端服务器,使用 Express.js 提供静态文件服务,并通过 PM2 进行进程管理。
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 安装依赖
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
### 2. 启动服务
|
||
|
||
#### 方式一:使用启动脚本(推荐)
|
||
```bash
|
||
chmod +x start.sh
|
||
./start.sh
|
||
```
|
||
|
||
#### 方式二:手动启动
|
||
```bash
|
||
# 安装 PM2(如果未安装)
|
||
npm install -g pm2
|
||
|
||
# 启动应用
|
||
pm2 start ecosystem.config.js
|
||
```
|
||
|
||
### 3. 访问应用
|
||
|
||
打开浏览器访问:http://localhost:3000
|
||
|
||
## 📊 PM2 管理命令
|
||
|
||
### 查看应用状态
|
||
```bash
|
||
pm2 status
|
||
```
|
||
|
||
### 查看日志
|
||
```bash
|
||
# 查看所有日志
|
||
pm2 logs vdi-web
|
||
|
||
# 实时查看日志
|
||
pm2 logs vdi-web --lines 100 -f
|
||
```
|
||
|
||
### 重启应用
|
||
```bash
|
||
pm2 restart vdi-web
|
||
```
|
||
|
||
### 停止应用
|
||
```bash
|
||
pm2 stop vdi-web
|
||
```
|
||
|
||
### 删除应用
|
||
```bash
|
||
pm2 delete vdi-web
|
||
```
|
||
|
||
### 监控应用
|
||
```bash
|
||
pm2 monit
|
||
```
|
||
|
||
## 🔧 开发模式
|
||
|
||
### 使用 nodemon 开发
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
### 直接启动
|
||
```bash
|
||
npm start
|
||
```
|
||
|
||
## 📁 目录结构
|
||
|
||
```
|
||
serve/
|
||
├── dist/ # 前端构建文件
|
||
├── logs/ # 日志文件
|
||
├── index.js # Express 服务器
|
||
├── package.json # 依赖配置
|
||
├── ecosystem.config.js # PM2 配置
|
||
├── start.sh # 启动脚本
|
||
├── stop.sh # 停止脚本
|
||
└── README.md # 说明文档
|
||
```
|
||
|
||
## ⚙️ 配置说明
|
||
|
||
### 环境变量
|
||
|
||
- `PORT`: 服务器端口(默认:3000)
|
||
- `NODE_ENV`: 运行环境(development/production)
|
||
|
||
### PM2 配置
|
||
|
||
- **实例数**: 1个实例
|
||
- **内存限制**: 1GB
|
||
- **自动重启**: 启用
|
||
- **日志轮转**: 启用
|
||
|
||
## 🔒 安全特性
|
||
|
||
- 使用 Helmet 增强安全性
|
||
- 启用 gzip 压缩
|
||
- 静态文件缓存
|
||
- 错误处理中间件
|
||
|
||
## 📝 日志
|
||
|
||
日志文件位于 `logs/` 目录:
|
||
- `combined.log`: 合并日志
|
||
- `out.log`: 标准输出日志
|
||
- `error.log`: 错误日志
|
||
|
||
## 🚨 故障排除
|
||
|
||
### 端口被占用
|
||
```bash
|
||
# 查看端口占用
|
||
lsof -i :3000
|
||
|
||
# 杀死进程
|
||
kill -9 <PID>
|
||
```
|
||
|
||
### PM2 进程异常
|
||
```bash
|
||
# 重置 PM2
|
||
pm2 kill
|
||
pm2 start ecosystem.config.js
|
||
```
|
||
|
||
### 权限问题
|
||
```bash
|
||
# 给脚本执行权限
|
||
chmod +x start.sh stop.sh
|
||
```
|
||
|
||
## 📞 技术支持
|
||
|
||
如有问题,请联系紫光汇智技术支持团队。
|
||
|
||
## 项目结构
|
||
|
||
```text
|
||
web-fe/
|
||
├── mock/ # 模拟接口数据
|
||
├── package.json # 前端依赖配置
|
||
├── pnpm-lock.yaml # pnpm锁定文件
|
||
├── README.md # 前端说明文档
|
||
├── serve/ # 服务端(Express+PM2+Docker)
|
||
│ ├── dist/ # 前端构建产物(静态文件)
|
||
│ ├── logs/ # 日志目录
|
||
│ ├── node_modules/ # 服务端依赖
|
||
│ ├── Dockerfile # Docker 构建文件
|
||
│ ├── ecosystem.config.js# PM2 配置
|
||
│ ├── index.js # Express 启动入口
|
||
│ ├── package.json # 服务端依赖配置
|
||
│ ├── start.sh # 启动脚本
|
||
│ ├── stop.sh # 停止脚本
|
||
│ ├── README.md # 服务端说明文档
|
||
│ └── ...
|
||
├── src/ # 前端源码
|
||
│ ├── access.ts
|
||
│ ├── app.ts
|
||
│ ├── assets/
|
||
│ ├── components/
|
||
│ ├── constants/
|
||
│ ├── models/
|
||
│ ├── pages/ # 页面目录
|
||
│ ├── services/ # 接口服务
|
||
│ ├── utils/ # 工具函数
|
||
│ └── ...
|
||
├── tsconfig.json # TypeScript 配置
|
||
└── typings.d.ts # 全局类型声明
|
||
```
|
||
|
||
--- |