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

【Node】如何使用PM2高效部署nodejs前端应用

引言

Node.js 这个服务端 JavaScript 运行时,能帮你打造高性能的实时 Web 和移动应用。不过相比传统的 Apache 或 Nginx 这类 Web 服务器,Node 应用的管理可要多花点心思。

PM2 就是专为生产环境设计的 Node 应用进程管理系统。这篇指南将手把手教你安装配置 PM2,分享实战中的最佳姿势,让你的应用稳如老狗。

准备工作

  • 确保你的系统(macOS/Linux/Windows)已安装 Node 和 NPM
  • 以 root 用户登录服务器

1. 通过 NPM 安装 PM2

一行命令搞定 PM2 安装:

# npm install pm2 -g

2. 创建示例 Node 应用(可选)

如果你已有现成的 Node 应用,直接跳过这步。

用你顺手的编辑器创建 app.js 文件,塞入以下代码:

const http = require('http');

const hostname = '0.0.0.0';
const port = 80;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World');
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

保存退出后,你就得到了一个监听 80 端口的极简 Web 服务——每当收到请求时,它都会傲娇地回一句 “Hello World”。

3. 用 PM2 启动应用

启动命令很简单(记得把 app.js 换成你的入口文件):

# pm2 start app.js

PM2 还支持这些骚操作参数:

  • --name <应用名> - 给应用起个响亮的名字
  • --watch - 文件变动时自动重启
  • --max-memory-restart <100MB> - 内存超限自动重启
  • --log <日志文件> - 指定日志路径
  • -- arg1 arg2 - 传递额外参数
  • …(更多参数参见官方文档)

4. 应用管理四连

  • 重启应用:# pm2 restart app
  • 热重载应用:# pm2 reload app
  • 停止应用:# pm2 stop app
  • 删除应用:# pm2 delete app

5. 查看应用列表

想知道 PM2 在托管哪些应用?敲这个:

# pm2 list

6. 实时日志追踪

想看实时日志:

# pm2 logs

查看历史日志(200行示例):

# pm2 logs --lines 200

7. 资源监控

实时监控 CPU/内存占用:

# pm2 monit

8. 炫酷的 Web 仪表板

运行这个命令开启可视化监控:

# pm2 plus

根据提示注册/登录 PM2 账户后,浏览器打开生成的地址就能看到炫酷的监控面板啦!

9. 开机自启配置

让 PM2 随系统启动:

# pm2 startup

反悔了想取消?用这个:

# pm2 unstartup systemd

10. 应用自启管理

保存当前应用列表:

# pm2 save

手动恢复应用:

# pm2 resurrect

11. 检查更新

查看需要更新的包:

# npm outdated -g

12. 升级 PM2

升级时会短暂中断服务,请合理安排时间:

# npm install pm2@latest -g

内存热更新(无需重启):

# pm2 update

最佳实践与安全指南

集群模式防宕机

通过多实例运行避免服务中断:

# pm2 start app.js -i 3  # 启动3个实例
# pm2 scale app 4       # 动态扩容到4个实例

优雅停机不掉请求

在代码中添加信号处理逻辑,让应用完美收尾:

process.on('SIGINT', function() {
    console.log('收到停机信号,开始收尾工作');
    server.close();
    process.exit();
});

结语

现在你已经掌握了 PM2 的核心玩法,从基础部署到集群优化、优雅停机这些进阶技巧。接下来就放手去折腾你的 Node.js 应用吧,让 PM2 做你最可靠的后盾!

相关文章:

  • 5G N2信令
  • Excel计数、求和、统计、计算类函数
  • AutoGLM 沉思智能体:开启 AI 自主决策新时代
  • Python开源项目月排行 2025年3月
  • C#调用C++动态库时出现`System.DllNotFoundException`错误的解决思路
  • int 与 Integer 的区别详解
  • Redis原理:keys命令
  • 微信小程序开发前端培训课程
  • 006 ElementUI
  • Redis7——进阶篇(八)
  • Unity Internal-ScreenSpaceShadows 分析
  • Spring Boot中使用RedisTemplate操作Redis的几种数据类型详解
  • 【C++ SIMD】第4篇:条件分支与掩码操作(Windows/VS2022版)——以AVX为例
  • 利用 Java 爬虫获取淘宝商品 SKU 详细信息
  • PyTorch使用(5)-张量索引操作
  • uniapp小程序生成海报/图片并保存分享
  • 集合学习内容总结
  • Chrome 135 版本新特性
  • YUESAI应急4G网络广播成功应用于绍兴市钱塘江观潮预警提示项目
  • 【9】搭建k8s集群系列(二进制部署)之安装work-node节点组件(kube-proxy)和网络组件calico
  • 俄乌刚谈完美国便筹划与两国领导人通话,目的几何?
  • 香港今年新股集资额已超600亿港元,暂居全球首位
  • 光速晋级!2025年多哈世乒赛孙颖莎4比0战胜对手
  • 浙江演艺集团7部作品组团来沪,今夏开启首届上海演出季
  • 秦洪看盘|风格有所转变,热钱回流高弹性品种
  • 俄乌谈判开始