PM2 + Nginx:Express 5 功能上线教程

本教程面向第一次把 Node.js 服务部署到 Linux 的开发者,以当前工程的 Express 5、TypeScript、CommonJS 编译模式为背景。

目标不是一次搭建复杂平台,而是先得到一个能够运行、重启、开机恢复、查看日志的部署:

浏览器
  ↓
Nginx :80 / :443
  ├─ /              → 前端静态文件
  └─ /api/*         → 127.0.0.1:8080
                         ↓
                    Express 5
                         ↑
                    PM2 管理进程
                         ↑
                    systemd 开机启动 PM2

学习路线

  1. 01 上线架构与请求流程
  2. 02 TypeScript 工程的生产构建
  3. 03 PM2 原理与基本命令
  4. 04 PM2、NVM 与 systemd
  5. 05 Nginx 反向代理 Express
  6. 06 PM2 与 Nginx 日志
  7. 07 第一次完整上线
  8. 08 更新、回滚与故障排查
  9. 09 完成首次上线后的渐进改进
  10. 10 使用 curl 排查 Nginx、PM2 与 Express 请求问题

本教程的第一阶段选择

Node.js:使用 NVM 固定一个生产版本
TypeScript:使用 tsc 编译
PM2:fork 模式、单进程
Nginx:静态文件 + /api/ 反向代理
日志:先使用 PM2 和 Nginx 的本地日志
发布:先掌握手工步骤,再考虑自动化

暂时不引入 Docker、Kubernetes、PM2 cluster、复杂 CI/CD 和集中式日志系统。它们有价值,但不是理解第一次上线的前提。

示例约定

教程采用以下示例值,请根据服务器实际情况替换:

项目 示例值
Linux 部署用户 deploy
项目目录 /var/www/nloop/current
Express 地址 127.0.0.1:8080
PM2 应用名 nloop-api
PM2 配置 ecosystem.config.js
域名 example.com
前端目录 /var/www/frontend

不要把示例中的用户名、目录和域名不加检查地复制到服务器。

官方参考