温馨提示×

centos怎样管理nodejs

小樊
42
2026-09-02 19:25:21
栏目: 编程语言

在 CentOS 上“管理 Node.js”通常包含 安装、版本切换、更新、卸载、进程管理、权限与运维 等方面。下面按常见场景给你一个实用指南。


一、安装 Node.js(推荐方式)

✅ 方式 1:使用 NodeSource(最常用,版本新)

curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo yum install -y nodejs

验证:

node -v
npm -v

✅ 方式 2:使用 NVM(推荐开发环境)

适合多版本切换

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc

使用:

nvm install 18
nvm install 20
nvm use 20
nvm alias default 20

✅ 方式 3:使用 EPEL(版本较旧)

sudo yum install epel-release
sudo yum install nodejs npm

二、Node.js 版本管理

使用 n(Node 版本管理器)

npm install -g n
n 20
n latest

⚠️ 注意:在 CentOS 上用 n 可能覆盖系统 Node,生产环境建议用 nvm


三、npm / 包管理

npm install
npm update
npm cache clean --force

使用淘宝镜像(国内快):

npm config set registry https://registry.npmmirror.com

四、Node 服务进程管理(非常重要)

✅ PM2(生产推荐)

npm install -g pm2
pm2 start app.js
pm2 startup
pm2 save

常用:

pm2 list
pm2 logs
pm2 restart app
pm2 stop app

✅ systemd(标准 CentOS 方式)

示例 /etc/systemd/system/nodeapp.service

[Unit]
Description=Node App
After=network.target

[Service]
User=nodeuser
WorkingDirectory=/opt/nodeapp
ExecStart=/usr/bin/node app.js
Restart=always

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start nodeapp
systemctl enable nodeapp

五、防火墙 & 端口

firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --reload

六、权限与安全建议

  • 不要使用 root 跑 Node
  • 单独用户运行:
useradd -m nodeuser
  • 限制文件权限
  • 使用 .env 管理配置

七、卸载 Node.js

yum 安装

sudo yum remove nodejs

nvm 安装

nvm uninstall 20

八、常见坑(CentOS 特有)

  • CentOS 7 默认 OpenSSL 旧,Node 18+ 可能报错
  • 建议 CentOS 8 / Stream 或迁移到 Rocky / AlmaLinux
  • 不要混用 yum + nvm

九、推荐组合(总结)

场景 推荐
开发 nvm
生产 NodeSource + PM2 / systemd
多版本 nvm
长期稳定 LTS + systemd

如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 用途(开发 / 生产 / Docker)
  • 是否用框架(Express / Nest / Next)

我可以给你更精确的一套配置方案

0