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

引言

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

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

准备工作

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 做你最可靠的后盾!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值