Nginx 中 Node.js 部署怎么在生产环境中使用集群模式提升算力

陌丽君_7567

陌丽君_7567

2026-08-29

781人浏览

原创

pm2 启动多进程集群需用 -i max 参数自动适配 cpu 核心数,配合 --name 便于管理,所有实例共享端口并由 pm2 内部负载均衡;必须通过 nginx 反向代理暴露服务,配置 proxy_http_version 1.1 和 connection upgrade 支持长连接,并统一管理环境变量、日志与监控。

nginx 中 node.js 部署怎么在生产环境中使用集群模式提升算力

用 PM2 启动多进程集群

Node.js 单进程无法充分利用多核 CPU,生产环境必须启用集群模式。PM2 是最成熟的选择,它能自动按 CPU 核心数启动实例,并在崩溃时自动重启。

推荐命令启动:

  • pm2 start npm --name "my-app" -- start(适用于 Next.js/Nuxt 等框架,自动读取 package.json 中的 start 脚本)
  • pm2 start ./dist/server.js -i max --name "api"(适用于自定义 Express/Koa 应用)

关键参数说明:-i max 表示启动与 CPU 核心数一致的进程数;--name 便于后续管理;所有进程共享同一端口(如 3000),由 PM2 内部负载均衡分发请求。

Nginx 作为统一入口转发流量

PM2 集群只监听本地地址(如 127.0.0.1:3000),不能直接暴露给公网。Nginx 必须作为反向代理接收 80/443 请求,并把它们转发到该本地端口。

/etc/nginx/conf.d/my-app.conf 示例:

Json Schema Toolkit
Json Schema Toolkit

使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。

下载
  • 监听 80 端口,绑定域名(如 server_name app.example.com)
  • location / { proxy_pass http://127.0.0.1:3000; }
  • 必须设置 proxy_http_version 1.1 和 Connection upgrade,否则 WebSocket 或长连接会中断
  • 添加 X-Forwarded-For 等头信息,确保后端能获取真实用户 IP

进阶:Nginx 层面做多 Node 实例负载均衡

当单台服务器资源见顶,或需要跨机器部署时,可让 Nginx 主动调度多个 Node.js 服务实例。这时不依赖 PM2 的 -i max,而是运行多个独立 PM2 进程(监听不同端口),再由 Nginx 统一代理。

例如启动两个实例:

  • pm2 start npm --name "app-3000" -- start -- -p 3000
  • pm2 start npm --name "app-3001" -- start -- -p 3001

Nginx 配置中使用 upstream 块定义后端池:

upstream node_backend {
  server 127.0.0.1:3000 weight=3;
  server 127.0.0.1:3001 weight=2;
}
server { location / { proxy_pass http://node_backend; } }

这样既实现横向扩展,又支持按权重分配流量,还能配合健康检查自动剔除故障节点。

配套保障:环境与监控不可少

集群模式下,配置和可观测性比单进程更关键:

  • 所有 PM2 实例必须设 NODE_ENV=production,避免开发中间件拖慢性能
  • 用 ecosystem.config.cjs 统一管理脚本、端口、环境变量,避免手动传参出错
  • 开启 PM2 日志聚合:pm2 log 查看全部实例输出;pm2 monit 实时观察内存/CPU 占用
  • Nginx 开启 access_log 和 error_log,并定期轮转,防止日志撑爆磁盘

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

880

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2632

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

876

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

789

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2376

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4372

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

707

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习