温馨提示×

centos nodejs怎么部署

小樊
39
2026-09-24 03:04:10
栏目: 编程语言

下面给你一套在 CentOS 上部署 Node.js 项目的常见、可落地方案,从安装到上线,适合大多数场景(Web 服务、API 服务等)。


一、准备工作

1. 系统更新

sudo yum update -y

2. 安装必要工具

sudo yum install -y curl wget git vim

二、安装 Node.js(推荐用 NodeSource)

方式一:使用 NodeSource(推荐)

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

查看版本:

node -v
npm -v

三、上传 / 拉取 Node.js 项目

方式一:Git 拉取

git clone https://github.com/your/project.git
cd project
npm install

方式二:本地上传

scp -r ./project user@server:/home/user/

四、运行 Node.js 项目

直接运行(不推荐生产)

node app.js

五、生产环境推荐方案(重点)

方案 1:PM2(最常用 ✅)

安装 PM2

sudo npm install -g pm2

启动项目

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

常用命令

pm2 list
pm2 logs
pm2 restart my-node-app
pm2 stop my-node-app

开机自启

pm2 startup
pm2 save

方案 2:Nginx + Node.js(标准生产架构)

安装 Nginx

sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

配置反向代理

编辑:

sudo vim /etc/nginx/conf.d/node.conf

示例:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

重载 Nginx

sudo nginx -t
sudo systemctl reload nginx

六、防火墙 & 安全

开放端口

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

建议

  • 不要用 root 跑 Node
  • 使用非 80 端口 + Nginx
  • 使用 HTTPS(Let’s Encrypt)

七、HTTPS(可选但强烈建议)

sudo yum install -y certbot python3-certbot-nginx
sudo certbot --nginx

八、常见问题

1. 端口被占用

lsof -i:3000

2. node 命令不存在

which node

九、总结(最简部署流程)

yum update
curl -sL https://rpm.nodesource.com/setup_18.x | bash -
yum install nodejs -y
npm i -g pm2
git clone 项目
npm install
pm2 start app.js
nginx 反向代理

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

  • CentOS 版本(7 / 8 / Stream)
  • Node 项目类型(Express / Koa / Nest / 前端构建)
  • 是否要 Docker / 云服务

我可以给你定制部署方案。

0 踩