当前位置: 首页 > news >正文

[特殊字符] PM2 入门实战:从 0 到线上托管 React SPA

在这里插入图片描述

1. 什么是 PM2?(30 s 速读)

PM2 是 Node.js 的生产级进程管理器,内置负载均衡、日志切割、开机自启、监控面板
一句话:让你的 Node / 静态站点“永远在线”


2. 本文目标

  1. 了解 PM2 核心能力
  2. 用一条命令把 React 单页应用跑在 3000 端口
  3. 配置 ecosystem 文件,实现“可重复、可回滚”的部署
  4. 开机自启 + 日志轮转,达到线上最低可维护标准

3. 环境准备

项目版本
OSOpenCloudOS / CentOS 8+
Node22.11.0(已预装)
构建产物react-app/build/ 目录已存在

4. 一条命令体验 PM2

cd /www/wwwroot/react-app
pm2 serve build 3000 --spa --name "react-app"
  • --spa:所有 404 重定向到 index.html,支持 React-Router
  • --name:进程别名,方便后续管理

成功后会看到:

[PM2] Serving /www/wwwroot/react-app/build on port 3000
┌────┬─────────────┬────────────┬──────┬──────┬────────┬───┬────────┬───┐
│ id │ name        │ namespace  │ mode │ pid  │ status │ ↑ │ cpu    │ mem │
├────┼─────────────┼────────────┼──────┼──────┼────────┼───┼────────┼───┤
│ 0  │ react-app   │ default    │ fork │ xxxx │ online │ 0 │ 0%     │ 32M │
└────┴─────────────┴────────────┴──────┴──────┴────────┴───┴────────┴───┘

浏览器访问 http://<服务器IP>:3000 即可看到 React 页面。


5. 核心概念图解(Mermaid)

5.1 PM2 架构一览

start/reload
CLI
PM2 Daemon
Process Container 1
Process Container 2
...
Log File
dump.pm2
systemd

5.2 静态 SPA 流程

用户Nginx(可选)PM2 servebuild/index.html80/4433000SPA 模式200 + React 页面用户Nginx(可选)PM2 servebuild/index.html

6. 把“命令”升级成“代码”——ecosystem 文件

在项目根新建 ecosystem.config.js

module.exports = {apps: [{name: "react-app",script: "serve",args: "-s build -l 3000",instances: 1,exec_mode: "fork",env: { NODE_ENV: "production" },log_date_format: "YYYY-MM-DD HH:mm:ss Z",out_file: "./logs/combined.log",error_file: "./logs/combined.log",merge_logs: true}]
};

启动/重载:

pm2 start ecosystem.config.js
pm2 reload ecosystem.config.js        # 0 中断更新

7. 日志切割 & 磁盘保护

pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 50M
pm2 set pm2-logrotate:retain 7

50 MB 自动切,保留 7 份,再也不怕磁盘爆。


8. 开机自启(systemd)

pm2 save                           # 保存当前列表
pm2 startup systemd                # 生成 systemd 服务
# 按提示执行
systemctl enable pm2-root

重启机器后 pm2 ls 仍在,进程自动拉回。


9. 日常值班 6 大宝命令

任务命令
看列表pm2 ls
实时日志pm2 log react-app --lines 50
资源监控pm2 monit
平滑重载pm2 reload react-app
停止并删除pm2 delete react-app
保存现场pm2 save

10. 小结 & 下一步

  1. 你已拥有可重复部署的 ecosystem 文件
  2. 日志切割 + 开机自启,达到线上最低可维护标准
  3. 下一步:
    • Nginx 反向代理 80/443
    • 接入 CI/CD(GitLab/GitHub Actions)一条 pm2 reload 完成上线
    • 使用 pm2-io-apm 接入 Web 监控 & 邮件/钉钉告警

11. 一键 cheatsheet(保存即可)

pm2 start app.js -i max      # 集群模式
pm2 reload api               # 平滑重启
pm2 monit                    # 资源面板
pm2 install pm2-logrotate    # 日志轮转
pm2 save && pm2 startup      # 开机自启

🎉 至此,PM2 入门完成!把这篇 Markdown 丢进仓库,团队其他成员也能 3 分钟跑起同样的环境。 Happy shipping!


以我之思,借AI之力

http://www.dtcms.com/a/511060.html

相关文章:

  • 指定位置打开 jupyter notebook
  • 设计模式-单例模式:从原理到实战的三种经典实现
  • 深度解析JVM GC调优实践指南
  • 决策规划仿真平台搭建
  • 河北住房城乡建设厅官方网站wordpress改浏览数数据库
  • 正规的金融行业网站开发wordpress如何生成rss
  • 华为网路设备学习-34(BGP协议 九)BGP路由 选路规则二
  • AR巡检系统:工业非计划停机的终结者
  • ECharts地图数据压缩-ZigZag算法
  • 垃圾分类抠像拍照系统-垃圾分类AR互动游戏-体感漫画拍照一体机
  • 2024年ESWA SCI1区TOP,大规模移动用户移动边缘计算中多无人机部署与任务调度的联合优化方法,深度解析+性能实测
  • 磁悬浮轴承非线性控制的挑战与难点剖析
  • 【开题答辩过程】以《自由绘画师管理系统的设计与实现》为例,不会开题答辩的可以进来看看
  • Spring AI与DeepSeek实战:打造企业级智能体
  • MFE: React + Angular 混合demo
  • CR0 控制位解释
  • 半成品网站周村网站制作哪家好
  • 自然语言处理NLP的数据预处理:从原始文本到模型输入(MindSpore版)
  • 清空显存占用
  • UNTER++模型简介
  • PHP Error 处理指南
  • Linux学习笔记(十)--进程替换与创建一个自己的简易版shell
  • go语言实现 基于 Session 和 Redis 实现短信验证码登录
  • 福建网站建设制作阿里巴巴旗下跨境电商平台有哪些
  • 潇洒郎:最佳完美——Windows防火墙与端口管理工具——支持ipv6、ipv4端口转发管理
  • Elastic MCP 服务器:向任何 AI agent 暴露 Agent Builder 工具
  • 小说网站建设详细流程游戏开发有前途吗
  • echarts tooltip数据太长导致显示不全
  • 用户选剧情,AI写故事:Trae Solo+GLM-4.6实现沉浸式小说创作体验
  • 【Linux】初始Linux和Linux下基本指令:ls pwd cd touch mkdir rmdir rm 指令