JS在Debian上的部署工具有哪些
小樊
39
2025-12-17 02:52:38
JS在Debian上的部署工具清单
一 运行与进程管理
- PM2:进程守护与集群管理,支持零停机重载、日志聚合、开机自启、监控面板,适合生产长期运行。示例:
pm2 start app.js --name "my-app"、pm2 startup、pm2 monit。
- systemd:系统级服务管理,稳定可靠、与系统深度集成。示例:创建
/etc/systemd/system/myapp.service,配置ExecStart=/usr/bin/node /opt/myapp/app.js、Restart=always,执行systemctl enable --now myapp。
- Docker:容器化交付,环境隔离、可移植性强,便于一致性与回滚。示例:
docker build -t myapp .、docker run -d -p 3000:3000 myapp。
- NVM(Node Version Manager):多版本Node.js管理,便于在同一台机器上切换版本,适合开发与灰度验证。示例:
nvm install --lts、nvm use 20。
二 反向代理与静态资源
- Nginx:高性能反向代理与静态资源服务,支持负载均衡、缓存、压缩、HTTPS终止。示例:将
proxy_pass http://127.0.0.1:3000;转发到Node服务,并配置proxy_set_header等头部。
- Apache HTTP Server(mod_proxy):可作为反向代理与虚拟主机入口,适合已有Apache栈的团队。
三 自动化部署与交付
- PM2 部署流水线:通过
ecosystem.config.js定义多环境(如production)与repo、ref、path,使用pm2 deploy production setup/update完成拉取、安装依赖与切换发布。
- SSH/脚本自动化:使用node-ssh或Shell脚本在CI/CD中执行远程命令、传输文件与重启服务,实现从构建到上线的自动化。
- Git + CI/CD:在GitHub Actions/GitLab CI中打包、测试,并通过SSH或API触发服务器侧的部署脚本/PM2部署流程。
四 打包与系统级分发
- node-deb:将Node.js项目打包为Debian 原生安装包(.deb),自动生成安装/卸载/启动/停止脚本,便于在Debian系环境做标准化分发与版本管理。示例:
node-deb -- index.js lib/,产出.deb后dpkg -i安装。
五 选型建议与组合示例
- 小型单体/快速上线:NVM + PM2 + Nginx(进程守护+反向代理),简单、运维成本低。
- 多服务/弹性伸缩:Docker + Nginx/负载均衡,环境一致、易于横向扩展与回滚。
- 企业内部分发/合规:node-deb + systemd,以系统包形式纳入配置管理与升级流程。
- 零停机与多环境发布:PM2 部署流水线 + Nginx,结合
ecosystem.config.js与deploy命令实现多环境自动化。