Files
Web_BLS_ProjectConsole/docs/configuration-check-report.md
XuJiacheng 240e708fbe feat(日志): 实现定时日志清理功能并统一服务端口为19070
- 添加每小时定时清理项目控制台日志功能,保留最新1000条且不超过24小时
- 将所有服务端口统一调整为19070,包括后端API、Nginx配置和文档
- 优化前端日志显示,支持单行折叠和点击展开
- 更新相关测试用例和部署文档
2026-01-22 14:06:44 +08:00

477 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 配置文件检查报告
## 一、检查概述
本文档记录了BLS Project Console项目所有配置文件的检查结果确保配置项正确无误、格式规范、无语法错误符合当前部署架构的要求。
**检查日期**: 2026-01-16
**部署架构**: NginxDocker容器+ Express后端systemd管理
**前端访问地址**: blv-rd.tech:19199
**后端API地址**: http://127.0.0.1:19070
## 二、配置文件清单
### 1. Nginx配置文件
**文件路径**: `docs/nginx-deployment.conf`
**检查结果**: ✅ 通过
**配置内容**:
```nginx
server {
listen 19199;
server_name blv-rd.tech;
root /var/www/bls_project_console;
index index.html;
client_max_body_size 100M;
location /api/ {
proxy_pass http://host.docker.internal:19070;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 300s;
}
location / {
try_files $uri $uri/ /index.html;
}
access_log /var/log/nginx-custom/access.log;
error_log /var/log/nginx-custom/error.log warn;
}
```
**检查项**:
- ✅ 监听端口: 19199正确
- ✅ 服务器名称: blv-rd.tech正确
- ✅ 静态文件根目录: /var/www/bls_project_console正确
- ✅ API代理地址: http://host.docker.internal:19070正确Nginx在Docker容器中
- ✅ 文件上传大小限制: 100M正确
- ✅ Vue Router history模式支持: try_files $uri $uri/ /index.html正确
- ✅ 超时设置: 连接60s、发送60s、读取300s正确
- ✅ 日志配置: access.log和error.log正确
**说明**:
- 使用 `host.docker.internal` 是因为Nginx运行在Docker容器中需要通过这个特殊域名访问宿主机上的后端服务
- `try_files $uri $uri/ /index.html` 配置支持Vue Router的history模式
---
### 2. Systemd服务配置文件
**文件路径**: `docs/bls-project-console.service`
**检查结果**: ✅ 通过
**配置内容**:
```ini
[Unit]
Description=BLS Project Console Backend Service
After=network.target redis.service
[Service]
Type=simple
User=root
WorkingDirectory=/vol1/1000/Docker/nginx/project/bls/bls_project_console/backend
ExecStart=/usr/bin/node /vol1/1000/Docker/nginx/project/bls/bls_project_console/backend/server.js
Restart=on-failure
RestartSec=10
StandardOutput=append:/vol1/1000/Docker/nginx/project/bls/bls_project_console/backend/logs/systemd-out.log
StandardError=append:/vol1/1000/Docker/nginx/project/bls/bls_project_console/backend/logs/systemd-err.log
Environment=NODE_ENV=production
Environment=PORT=19070
[Install]
WantedBy=multi-user.target
```
**检查项**:
- ✅ 服务描述: 清晰明确(正确)
- ✅ 依赖关系: network.target和redis.service正确
- ✅ 服务类型: simple正确适合Node.js应用
- ✅ 工作目录: /vol1/1000/Docker/nginx/project/bls/bls_project_console/backend正确
- ✅ 启动命令: /usr/bin/node server.js正确
- ✅ 重启策略: on-failure正确
- ✅ 重启延迟: 10秒合理
- ✅ 日志输出: 标准输出和错误日志分离(正确)
- ✅ 环境变量: NODE_ENV=production, PORT=19070正确
- ✅ 开机自启: WantedBy=multi-user.target正确
**说明**:
- 服务会在网络和Redis服务启动后自动启动
- 失败后会在10秒后自动重启
- 日志会追加到指定文件,不会覆盖旧日志
---
### 3. 后端服务器配置
**文件路径**: `src/backend/server.js`
**检查结果**: ✅ 通过
**关键配置**:
```javascript
const PORT = parsePort(process.env.PORT, 19070);
app.use(cors());
app.use(express.json());
app.use('/api/logs', logRoutes);
app.use('/api/commands', commandRoutes);
app.use('/api/projects', projectRoutes);
app.get('/api/health', (req, res) => {
res.status(200).json({ status: 'ok' });
});
```
**检查项**:
- ✅ 端口配置: 19070与systemd配置一致
- ✅ CORS中间件: 已启用(正确)
- ✅ JSON解析: 已启用(正确)
- ✅ API路由: /api/logs, /api/commands, /api/projects正确
- ✅ 健康检查端点: /api/health正确
- ✅ Redis连接: 在启动时连接(正确)
- ✅ 优雅关闭: 处理SIGINT信号正确
**说明**:
- 端口19070与systemd服务配置中的PORT环境变量一致
- 提供健康检查端点便于监控
- 支持优雅关闭确保Redis连接正确关闭
---
### 4. Vite构建配置
**文件路径**: `vite.config.js`
**检查结果**: ✅ 通过
**关键配置**:
```javascript
export default defineConfig({
plugins: [vue()],
root: 'src/frontend',
build: {
outDir: '../../dist',
emptyOutDir: true,
},
server: {
port: 3000,
proxy: {
'/api': {
target: 'http://localhost:19070',
changeOrigin: true,
},
},
},
resolve: {
alias: {
'@': resolve(__dirname, 'src/frontend'),
},
},
});
```
**检查项**:
- ✅ Vue插件: 已启用(正确)
- ✅ 源码根目录: src/frontend正确
- ✅ 输出目录: ../../dist正确
- ✅ 开发服务器端口: 3000正确
- ✅ API代理: /api -> http://localhost:19070正确仅用于开发环境
- ✅ 路径别名: @ -> src/frontend正确
**说明**:
- 开发环境使用代理转发API请求到后端
- 生产环境由Nginx处理API请求代理
- 输出目录为项目根目录下的dist文件夹
---
### 5. Vue Router配置
**文件路径**: `src/frontend/router/index.js`
**检查结果**: ✅ 通过
**关键配置**:
```javascript
const router = createRouter({
history: createWebHistory(),
routes,
});
```
**检查项**:
- ✅ 路由模式: createWebHistory()正确使用HTML5 History模式
- ✅ 路由配置: 包含主页路由(正确)
**说明**:
- 使用HTML5 History模式需要Nginx配置支持
- Nginx配置中的 `try_files $uri $uri/ /index.html` 已正确配置
---
### 6. 前端入口文件
**文件路径**: `src/frontend/main.js`
**检查结果**: ✅ 通过
**配置内容**:
```javascript
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
const app = createApp(App);
app.use(router);
app.mount('#app');
```
**检查项**:
- ✅ Vue应用创建: 正确(正确)
- ✅ 路由插件: 已安装(正确)
- ✅ 挂载点: #app(正确)
---
## 三、配置一致性检查
### 端口配置一致性
| 配置项 | 端口 | 状态 |
| -------------------------- | ----- | --------------- |
| 后端服务器 (server.js) | 19070 | ✅ |
| Systemd服务 (PORT环境变量) | 19070 | ✅ |
| Nginx代理目标 | 19070 | ✅ |
| Nginx监听端口 | 19199 | ✅ |
| Vite开发服务器 | 3000 | ✅ (仅开发环境) |
### 路径配置一致性
| 配置项 | 路径 | 状态 |
| ------------------- | -------------------------------------------------------------------- | ---- |
| Nginx静态文件根目录 | /var/www/bls_project_console | ✅ |
| Systemd工作目录 | /vol1/1000/Docker/nginx/project/bls/bls_project_console/backend | ✅ |
| Systemd日志目录 | /vol1/1000/Docker/nginx/project/bls/bls_project_console/backend/logs | ✅ |
| Vite输出目录 | ../../dist | ✅ |
### API路由一致性
| 配置项 | 路由前缀 | 状态 |
| --------- | --------------------------------------- | --------------- |
| 后端路由 | /api/logs, /api/commands, /api/projects | ✅ |
| Nginx代理 | /api/ | ✅ |
| Vite代理 | /api | ✅ (仅开发环境) |
---
## 四、部署架构验证
### 前端部署流程
1. ✅ 本地编译: `npm run build` 生成dist文件夹
2. ✅ 上传dist文件夹内容到: /vol1/1000/Docker/nginx/project/bls/bls_project_console
3. ✅ 上传Nginx配置到: /vol1/1000/Docker/nginx/conf.d/bls_project_console.conf
4. ✅ 重启Nginx容器: `docker restart nginx`
5. ✅ 访问地址: http://blv-rd.tech:19199
### 后端部署流程
1. ✅ 上传后端文件到: /vol1/1000/Docker/nginx/project/bls/bls_project_console/backend
2. ✅ 安装依赖: `npm install --production`
3. ✅ 上传systemd配置到: /etc/systemd/system/bls-project-console.service
4. ✅ 创建日志目录: `mkdir -p /vol1/1000/Docker/nginx/project/bls/bls_project_console/backend/logs`
5. ✅ 重新加载systemd: `systemctl daemon-reload`
6. ✅ 启用开机自启: `systemctl enable bls-project-console.service`
7. ✅ 启动服务: `systemctl start bls-project-console.service`
---
## 五、潜在问题和建议
### 1. Nginx容器网络配置
**问题**: Nginx容器需要能够访问宿主机的19070端口
**建议**:
- 确保Docker容器配置了 `extra_hosts` 或使用 `host.docker.internal`
- 如果使用Linux需要在docker-compose.yml中添加
```yaml
extra_hosts:
- 'host.docker.internal:host-gateway'
```
### 2. Redis服务依赖
**问题**: Systemd服务配置依赖redis.service
**建议**:
- 确保系统中有名为redis.service的systemd服务
- 如果Redis服务名称不同需要修改After=redis.service为正确的服务名
- 如果Redis不在systemd管理下可以移除redis.service依赖
### 3. 文件权限
**问题**: Systemd服务以root用户运行
**建议**:
- 考虑创建专用的系统用户运行Node.js应用
- 设置适当的文件权限,避免安全风险
### 4. 日志轮转
**问题**: 日志文件会持续增长
**建议**:
- 配置logrotate定期轮转日志文件
- 参考deployment-guide-systemd.md中的日志轮转配置
### 5. 环境变量管理
**问题**: 环境变量硬编码在systemd配置中
**建议**:
- 考虑使用.env文件管理环境变量
- 在systemd配置中使用EnvironmentFile加载环境变量
---
## 六、验证步骤
### 部署前验证
```bash
# 1. 检查Node.js版本
node --version
# 2. 检查npm版本
npm --version
# 3. 检查Redis服务
redis-cli ping
# 4. 检查端口占用
netstat -tlnp | grep 19070
netstat -tlnp | grep 19199
```
### 部署后验证
```bash
# 1. 检查systemd服务状态
systemctl status bls-project-console.service
# 2. 检查后端服务
curl http://localhost:19070/api/health
# 3. 检查Nginx容器
docker ps | grep nginx
# 4. 检查前端访问
curl http://blv-rd.tech:19199
# 5. 检查API代理
curl http://blv-rd.tech:19199/api/health
```
---
## 七、配置文件位置总结
### 本地文件(需要上传)
```
Web_BLS_ProjectConsole/
├── dist/ # 前端编译产物
├── src/backend/ # 后端源码
│ ├── app.js
│ ├── server.js
│ ├── routes/
│ └── services/
├── package.json # 依赖配置
├── package-lock.json # 依赖锁定
└── docs/
├── nginx-deployment.conf # Nginx配置
└── bls-project-console.service # Systemd配置
```
### NAS文件部署目标
```
/vol1/1000/Docker/nginx/
├── conf.d/
│ └── bls_project_console.conf # Nginx配置
└── project/bls/bls_project_console/
├── index.html # 前端入口
├── assets/ # 前端资源
└── backend/
├── app.js
├── server.js
├── routes/
├── services/
├── package.json
├── package-lock.json
├── node_modules/
└── logs/
├── systemd-out.log
└── systemd-err.log
/etc/systemd/system/
└── bls-project-console.service # Systemd配置
```
---
## 八、总结
所有配置文件已通过检查,配置项正确无误、格式规范、无语法错误,符合当前部署架构的要求。
**检查结果**: ✅ 全部通过
**下一步**:
1. 按照deployment-guide-systemd.md中的步骤进行部署
2. 部署完成后按照验证步骤进行检查
3. 定期检查日志和服务状态
---
**检查人员**: AI助手
**检查日期**: 2026-01-16
**文档版本**: 1.0