温馨提示×

Debian怎么部署Nodejs项目

小樊
48
2026-07-01 19:26:57
栏目: 编程语言

在 Debian 上部署 Node.js 项目,常见做法有 直接部署使用 Nginx 反向代理使用 PM2 守护进程。下面我按生产环境推荐流程一步一步讲,适合新手也能照着做。


一、准备环境(Debian)

1️⃣ 更新系统

sudo apt update && sudo apt upgrade -y

2️⃣ 安装基础工具

sudo apt install -y curl wget git build-essential

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

✅ 方式一:使用 NodeSource(推荐)

Node.js 20.x LTS 为例:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

验证:

node -v
npm -v

✅ 方式二:使用 NVM(适合开发环境)

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

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

方式一:Git 拉取

cd /var/www
sudo git clone https://github.com/yourname/yourproject.git
cd yourproject

方式二:本地上传

scp -r ./myproject user@server_ip:/var/www/

四、安装依赖并启动测试

cd /var/www/yourproject
npm install
npm run build   # 如有前端构建
node app.js     # 或 npm start

✅ 此时项目通常在:

http://服务器IP:3000

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

1️⃣ 安装 PM2

sudo npm install -g pm2

2️⃣ 启动项目

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

3️⃣ 设置开机自启

pm2 startup
pm2 save

常用命令:

pm2 list
pm2 restart my-node-app
pm2 logs

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

1️⃣ 安装 Nginx

sudo apt install -y nginx

2️⃣ 配置反向代理

编辑配置:

sudo nano /etc/nginx/sites-available/node-app

示例配置:

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;
    }
}

启用配置:

sudo ln -s /etc/nginx/sites-available/node-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

七、配置防火墙(如启用 UFW)

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

八、HTTPS(可选但强烈推荐)

使用 Let’s Encrypt:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

九、目录结构示例(推荐)

/var/www/yourproject
├── app.js
├── package.json
├── node_modules
├── .env

十、常见问题

❓ 端口被占用

lsof -i:3000

❓ 权限问题

sudo chown -R $(whoami) /var/www/yourproject

❓ 使用 .env

npm install dotenv
require('dotenv').config()

✅ 总结(最简流程)

apt update
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
npm install -g pm2
cd /var/www/yourproject
npm install
pm2 start app.js
nginx 反向代理

如果你愿意,我可以:

  • ✅ 按 Debian 11 / 12 定制流程
  • ✅ 帮你写 完整部署脚本
  • ✅ 帮你排查 端口 / 权限 / 启动失败问题

你现在用的是 Debian 几?项目是 Express / Nuxt / Next / Nest?

0