温馨提示×

centos nodejs如何启动

小樊
34
2026-07-20 00:40:54
栏目: 编程语言

CentOS 上启动 Node.js 项目,常见方式如下(从简单到生产级):


一、直接启动(最简单)

1️⃣ 确认 Node.js 已安装

node -v
npm -v

如果没有安装:

# 使用 NodeSource(推荐)
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs

2️⃣ 启动 Node.js 项目

进入项目目录:

cd /path/to/your/project

启动:

node app.js

✅ 适合临时测试,关闭终端进程会停止。


二、后台运行(不推荐长期使用)

使用 nohup

nohup node app.js > app.log 2>&1 &

查看进程:

ps -ef | grep node

停止:

kill -9 PID

⚠️ 不稳定,服务器重启需手动启动。


三、使用 PM2(✅ 强烈推荐,生产环境)

1️⃣ 安装 PM2

sudo npm install -g pm2

2️⃣ 启动项目

pm2 start app.js

或指定名称:

pm2 start app.js --name my-node-app

3️⃣ 常用 PM2 命令

pm2 list                 # 查看运行列表
pm2 logs my-node-app     # 查看日志
pm2 restart my-node-app
pm2 stop my-node-app
pm2 delete my-node-app

4️⃣ 开机自启(非常重要)

pm2 startup
pm2 save

四、使用 systemd(企业常用)

1️⃣ 创建服务文件

sudo vi /etc/systemd/system/node-app.service

内容示例:

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

[Service]
User=root
WorkingDirectory=/path/to/your/project
ExecStart=/usr/bin/node /path/to/your/project/app.js
Restart=always

[Install]
WantedBy=multi-user.target

2️⃣ 启动服务

sudo systemctl daemon-reload
sudo systemctl start node-app
sudo systemctl enable node-app

查看状态:

sudo systemctl status node-app

五、常见问题

❓ 端口被占用

lsof -i:3000
kill -9 PID

❓ 防火墙未放行端口

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

✅ 推荐方案总结

场景 推荐方式
本地测试 node app.js
后台运行 PM2
生产环境 PM2 或 systemd

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

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ Node.js 项目类型(Express / NestJS / 原生)
  • ✅ 是否需要 HTTPS / Nginx

我可以给你一套完整部署方案

0