下面给你一套在 Debian 上用 Node.js 部署项目的常用且稳妥流程,从环境安装到生产部署都覆盖,适合大多数 Web 项目(如 Express / NestJS / Vue/React 前端等)。
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl
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 git
git clone https://github.com/your/project.git
cd project
scp -r ./project user@server:/var/www/
npm install
# 或
yarn install
npm run build
node app.js
# 或
npm start
⚠️ 这样关闭终端就会停止
sudo npm install -g pm2
pm2 start app.js
pm2 startup
pm2 save
pm2 list
pm2 logs
pm2 restart app
pm2 stop app
sudo nano /etc/systemd/system/nodeapp.service
内容示例:
[Unit]
Description=Node.js App
After=network.target
[Service]
User=www-data
WorkingDirectory=/var/www/project
ExecStart=/usr/bin/node app.js
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start nodeapp
sudo systemctl enable nodeapp
sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/nodeapp
示例:
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/nodeapp /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
/var/www/
└── project/
├── app.js
├── package.json
├── node_modules/
└── dist/
sudo lsof -i:3000sudo ufw allow 80,443,22pm2 logs 或 journalctl -u nodeapp如果你愿意,可以告诉我:
我可以直接给你一份专用部署方案或脚本。