在 Debian 上部署 Node.js 项目,通常可以按下面的流程来做。下面以 Debian 11 / 12 为例,涵盖从环境准备到生产部署的常见做法。
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl git build-essential
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
查看版本:
node -v
npm -v
sudo apt install -y nodejs npm
cd /var/www
sudo git clone https://github.com/yourname/yourproject.git
cd yourproject
npm install --production
node app.js
# 或
npm start
⚠️ 这种方式的缺点:关闭终端即停止。
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
sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/my-node-app
示例配置:
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;
}
}
sudo ln -s /etc/nginx/sites-available/my-node-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
sudo ufw allow 80
sudo ufw allow 443
nvm 管理 Node 版本✅ Debian
✅ NodeSource 安装 Node
✅ PM2 管理进程
✅ Nginx 反向代理
✅ Certbot HTTPS
如果你有 具体项目类型(Express / NestJS / Next.js) 或 部署方式(Docker / 本地),我可以给你更细的方案。