温馨提示×

centos怎样部署nodejs项目

小樊
42
2026-10-05 19:21:22
栏目: 编程语言

下面按从零到上线的思路,给你一份在 CentOS 上部署 Node.js 项目 的常见做法(以 CentOS 7/8 为例,适用于大多数场景)。


一、准备工作

1. 更新系统

sudo yum update -y

2. 安装基础工具

sudo yum install -y curl wget git

二、安装 Node.js

方式一(推荐):使用 NodeSource 安装指定版本

curl -fsSL 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@ip:/home/user/project

四、运行 Node.js 项目

1. 直接运行(测试用)

node app.js
# 或
npm start

⚠️ 这样关闭终端就会停止


五、使用 PM2 守护进程(生产必选)

1. 安装 PM2

sudo npm install -g pm2

2. 启动项目

pm2 start app.js

或(如果有 package.json):

pm2 start npm -- start

3. 常用命令

pm2 list
pm2 logs
pm2 restart app
pm2 stop app

4. 开机自启

pm2 startup
pm2 save

六、配置防火墙 & 端口

开放端口(如 3000)

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

查看:

sudo firewall-cmd --list-ports

七、使用 Nginx 反向代理(推荐)

1. 安装 Nginx

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

2. 配置反向代理

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

示例:

server {
    listen 80;
    server_name yourdomain.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;
    }
}

3. 重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

八、配置 HTTPS(可选)

使用 Let’s Encrypt:

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

九、常见问题

1. 端口被占用

netstat -tunlp | grep 3000

2. 内存不足

  • 使用 PM2
  • 限制并发
  • 增加 swap

3. 生产环境不要使用 npm run dev


十、总结部署流程

CentOS
 ├─ Node.js
 ├─ 项目代码
 ├─ PM2(进程管理)
 ├─ Nginx(反向代理)
 └─ 防火墙 / 域名 / HTTPS

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

  • CentOS 版本(7 / 8 / Stream)
  • Node 项目类型(Express / Koa / Nuxt / Next)
  • 是否用域名

我可以给你一份完全针对你项目的部署方案。

0 踩