VTJ.PRO 在线应用开发平台部署与运维

部署与运维

本页面详细介绍了 VTJ.PRO 平台的生产部署策略,包括运行 Vue 3 前端和 NestJS 后端所需的基础设施配置、使用 PM2 进行进程管理,以及用于生成分发版本的自动化打包脚本。

基础设施架构

VTJ.PRO 采用标准的全栈部署模型,其中反向代理(Nginx)负责处理 SSL 终止和静态资源服务,而进程管理器(PM2)确保 Node.js 后端持续运行。

Nginx 配置

Nginx 配置主要承担三个角色:

  1. 静态托管 :从 frontend/dist 目录提供编译后的前端文件。
  2. API 代理 :将 /api/ 请求转发至 NestJS 后端(默认端口 3000)。
  3. SPA 路由 :使用 try_files 支持不同运行时(Web、H5、UniApp)的客户端路由。
请求路由流程

下图展示了 Nginx 如何根据 URL 路径路由传入流量:

Nginx 请求分发器

关键配置参数:

  • 根目录/home/vtj-pro/frontend/dist
  • 客户端最大请求体大小 :设为 10M 以适应大型 DSL 或文件上传
  • 代理头 :Nginx 传递 X-Real-IPX-Forwarded-For 以确保后端能识别客户端 IP
  • SSL :配置为 TLS 1.2/1.3,证书位于 /home/app.vtj.pro_nginx/

进程管理(PM2)

NestJS 后端使用 PM2 进行管理,以实现高可用性、故障自动重启和日志管理。

服务执行

虽然代码库中没有专用的 ecosystem.config.js,但标准部署涉及运行编译后的主入口文件:

shellscript 复制代码
# 示例部署命令
pm2 start backend/dist/main.js --name "vtj-pro-api"

后端日志通常输出到 logs/_logs/ 目录,这些目录已被版本控制系统排除。

文件持久化

上传的文件和生成的项目 ZIP 包存储在 backend/uploadfiles/ 中。Nginx 配置通过 /uploadfiles/ 别名直接提供这些文件,以减少 Node.js 进程的负载。


发布打包与变体

平台提供了自动化生成生产就绪 ZIP 包的脚本。主要有两种部署变体:完整版云版

打包工作流

发布过程由 scripts/publish.mjs 处理(文档中提及),该脚本整合了前端构建、后端构建以及必要的模板。

代码到产物的映射

部署变体

变体 目标环境 描述
完整版 私有云 / 本地部署 包含所有依赖、本地存储驱动以及完整的模板库。
云版 托管式 SaaS 针对云环境优化,通常依赖外部对象存储服务(OSS)而非本地的 uploadfiles

环境配置

应用程序通过 .env 文件和 Vite 特定的模式文件区分开发环境和生产环境。

后端设置

后端使用环境变量配置:

  • 数据库:MySQL 的连接字符串。
  • 对象存储:阿里云/腾讯云存储的凭证。
  • 安全 :用于授权的 AUTH_CODE 和 JWT 密钥。

前端设置

Vite 环境文件(如 .env.production)控制 VITE_API_URLVITE_SDK_URL。在构建过程中,这些变量会被注入到 frontend/dist 的静态资源中。


运维维护

清理

为准备新的构建或部署,可使用 clean.mjs 脚本(文档中提及)清除构建产物和临时文件。

日志记录

日志生成位置如下:

  • Nginx 访问/错误日志/var/log/nginx/
  • 应用日志 :位于部署目录根目录下的 logs/ 文件夹中。

安全加固

  • Nginx:SSL 协议限制为 TLSv1.2 和 TLSv1.3。
  • 文件权限 :建议使用 www-data 用户运行 Nginx。

参考资料

相关推荐
xywww1684 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
私人珍藏库8 小时前
[Android] PeakFinder AR v4.8.89 (山峰全景识别+增强现实山峰查看器)
android·人工智能·智能手机·ar·工具·软件
CS创新实验室9 小时前
算法、齿轮与硅基大脑:数值计算发展简史
人工智能·算法·数值计算
能有时光9 小时前
PyTorch KernelAgent 源码解读 ---(4)--- ExtractorAgent
人工智能·pytorch·python
随风一样自由9 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
fthux9 小时前
GitZip Pro 源码解析:一个 GitHub 文件/文件夹下载扩展是如何工作的(一)整体架构与扩展入口
人工智能·ai·开源·github·open source
IMPYLH10 小时前
HTML 的 <data> 元素
前端·html
aqi0010 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
YHHLAI10 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
xixixi7777710 小时前
三大 AI 安全里程碑:Akamai 高危风险预警、智能体水印强制落地、PQC 量子安全全产业链统一
大数据·人工智能·安全·ai·大模型·智能体·政策