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

5.5 KiB

Windows 部署指南

环境要求

  • Windows Server
  • Node.js (已安装)
  • PM2 (已安装)
  • Nginx (已安装)
  • Redis 服务

部署步骤

1. 准备文件

将以下文件复制到测试服务器:

必需文件清单

项目根目录/
├── src/backend/           # 后端源码
│   ├── server.js
│   ├── app.js
│   ├── routes/
│   └── services/
├── dist/                  # 前端构建产物(已构建)
│   ├── index.html
│   └── assets/
├── package.json
├── package-lock.json
└── node_modules/          # 依赖包(需要在服务器上安装)

配置文件

docs/ 目录复制以下配置文件:

docs/
├── ecosystem.config.windows.js    # PM2 配置文件
├── nginx.conf.windows             # Nginx 配置文件
└── .env.example                   # 环境变量示例

2. 服务器目录结构

在测试服务器上创建以下目录结构:

E:/projects/bls_project_console/
├── src/backend/
├── dist/
├── logs/
├── node_modules/
├── package.json
├── package-lock.json
└── .env

3. 安装依赖

在服务器项目目录下运行:

cd E:/projects/bls_project_console
npm install --production

4. 配置环境变量

复制 .env.example.env,并根据实际情况修改配置:

# Redis connection
REDIS_HOST=10.8.8.109          # 修改为实际的Redis服务器地址
REDIS_PORT=6379
REDIS_PASSWORD=               # 如果有密码则填写
REDIS_DB=15
REDIS_CONNECT_TIMEOUT_MS=2000

# Command control (HTTP)
COMMAND_API_TIMEOUT_MS=5000

# Heartbeat liveness
HEARTBEAT_OFFLINE_THRESHOLD_MS=10000

# Node environment
NODE_ENV=production

5. 配置 PM2

修改 ecosystem.config.windows.js 中的路径配置:

module.exports = {
  apps: [
    {
      name: 'bls-project-console',
      script: './src/backend/server.js',
      cwd: 'E:/projects/bls_project_console', // 修改为实际部署路径
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '1G',
      env: {
        NODE_ENV: 'production',
        PORT: 19070,
      },
      error_file: './logs/pm2-error.log',
      out_file: './logs/pm2-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true,
    },
  ],
};

6. 启动后端服务

使用 PM2 启动服务:

cd E:/projects/bls_project_console
pm2 start ecosystem.config.windows.js
pm2 save
pm2 startup

查看服务状态:

pm2 status
pm2 logs bls-project-console

7. 配置 Nginx

7.1 部署前端静态文件

dist/ 目录内容复制到 Nginx 静态文件目录:

# 创建静态文件目录
mkdir C:/nginx/sites/bls_project_console

# 复制前端文件
xcopy E:/projects/bls_project_console\dist\* C:/nginx/sites/bls_project_console /E /I /Y

7.2 配置 Nginx

nginx.conf.windows 的内容添加到 Nginx 主配置文件中,或作为独立的站点配置文件:

# 复制配置文件到 Nginx 配置目录
copy docs\nginx.conf.windows C:/nginx/conf.d/bls_project_console.conf

7.3 修改配置文件中的路径

根据实际部署路径修改 nginx.conf.windows 中的路径:

root C:/nginx/sites/bls_project_console;  # 修改为实际的静态文件路径

7.4 测试并重启 Nginx

# 测试配置
nginx -t

# 重启 Nginx
nginx -s reload

8. 验证部署

8.1 检查后端服务

# 检查 PM2 进程状态
pm2 status

# 查看日志
pm2 logs bls-project-console

# 测试健康检查接口
curl http://localhost:19070/api/health

8.2 检查前端访问

在浏览器中访问:

  • http://localhost:19199/ 或配置的域名

8.3 检查 API 代理

curl http://localhost/api/health

常用命令

PM2 命令

# 启动服务
pm2 start ecosystem.config.windows.js

# 停止服务
pm2 stop bls-project-console

# 重启服务
pm2 restart bls-project-console

# 查看日志
pm2 logs bls-project-console

# 查看状态
pm2 status

# 删除服务
pm2 delete bls-project-console

# 保存当前进程列表
pm2 save

Nginx 命令

# 测试配置
nginx -t

# 重启 Nginx
nginx -s reload

# 停止 Nginx
nginx -s stop

# 查看 Nginx 版本
nginx -v

故障排查

后端无法启动

  1. 检查端口是否被占用:

    netstat -ano | findstr :19070
    
  2. 检查 Redis 连接:

    # 查看 .env 文件中的 Redis 配置
    # 确保可以连接到 Redis 服务器
    
  3. 查看日志:

    pm2 logs bls-project-console
    

前端无法访问

  1. 检查 Nginx 配置:

    nginx -t
    
  2. 检查静态文件目录:

    dir C:/nginx/sites/bls_project_console
    
  3. 查看 Nginx 错误日志:

    type C:/nginx/logs/bls_project_console_error.log
    

API 请求失败

  1. 检查后端服务是否运行:

    pm2 status
    
  2. 检查 Nginx 代理配置:

    # 确保 proxy_pass 指向正确的后端地址
    curl http://localhost:19070/api/health
    

端口说明

  • 19070: 后端 API 服务端口
  • 19199: Nginx HTTP 服务端口

注意事项

  1. 确保 Redis 服务正常运行并可访问
  2. 确保 Windows 防火墙允许相关端口访问
  3. 生产环境建议使用 HTTPS
  4. 定期备份 .env 配置文件
  5. 监控 PM2 日志和 Nginx 日志