Debian上Node.js项目的自动化运维落地方案
一、目标与总体架构
二、环境与基础准备
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bashsource ~/.bashrcnvm install --lts && nvm use --ltssudo npm i -g pm2sudo apt-get update && sudo apt-get install -y nginx,将站点根目录指向你的静态资源或反向代理到 Node 服务端口。/var/www/myapp/{releases,current,shared/logs,shared/uploads}。三、CI/CD流水线示例
方案A:使用 PM2 的内置部署能力(简单直接)
user、host、ref、repo、path 等。pm2 deploy production setuppm2 deploy production updatepm2 deploy production revert 1方案B:使用 GitLab CI/CD 自动化构建与发布
.gitlab-ci.yml 中定义 stages(如 build、package、deploy),构建产物(如前端 dist),通过 SSH/SCP 或 node-ssh 上传到 Debian 服务器,执行解压、切换软链、重启 PM2。四、进程守护与零停机发布
pm2 reload my-node-app(或 restart);回滚则切回上一软链并 reload。pm2 start ecosystem.config.js --env production、pm2 list、pm2 logs my-node-app -f、pm2 monit。proxy_pass http://127.0.0.1:3000;、proxy_set_header Host $host;、proxy_set_header X-Real-IP $remote_addr;、proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;五、安全与运维最佳实践
revert 或软链回切),保留最近 N 个版本;统一日志路径,接入 PM2 日志与必要的监控告警(如进程退出、内存泄漏、HTTP 5xx 激增)。