首先说一下,你的宝塔终端必须可是正确的打印出node -v npm -v pm2 -v 的版本号信息,如果不行那就看我一步一步来操作
我的系统linux - Debian 11
安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
重新加载 shell 配置:
source ~/.bashrc # 或 ~/.zshrc,取决于你使用的 shell
使用 nvm
安装最新版本的 Node.js
:
nvm install node
报错
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion admin@ip-172-26-7-87:~$ nvm -v -bash: nvm: command not found
解决
手动加载 nvm
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion
启动 4 个实例:
bash复制代码pm2 start app.js -i 4
根据 CPU 核心数自动分配:
bash复制代码pm2 start app.js -i max
使用 ecosystem.config.js
文件配置多进程
你可以通过 PM2 的配置文件(ecosystem.config.js
)更方便地管理多进程。
创建配置文件:
bash复制代码pm2 init
编辑配置文件:
将生成的 ecosystem.config.js
修改为如下内容:
javascript复制代码module.exports = { apps: [ { name: "your-app-name", // 应用名称 script: "./app.js", // 启动脚本路径 instances: "max", // 实例数量:"max" 表示使用所有 CPU 核心 exec_mode: "cluster", // 使用集群模式 env: { // 环境变量配置 NODE_ENV: "production" } } ] };
启动应用:
bash复制代码pm2 start ecosystem.config.js
3. 动态调整进程数量
如果你的应用已经运行,可以动态调整实例数量。
增加实例:
bash复制代码pm2 scale your-app-name +2
表示在当前实例基础上增加 2 个进程。
减少实例:
bash复制代码pm2 scale your-app-name -2
表示减少 2 个实例。
直接设置实例数量:
bash复制代码pm2 scale your-app-name 4
将实例数调整为 4。
4. 集群模式的自动负载均衡
PM2 集群模式会自动对多个进程之间的负载进行均衡分配。例如,如果你运行一个 HTTP 服务器,集群模式会自动为每个请求分配不同的进程处理。