产品动态2026-09-08

一个人的全栈项目,部署该怎么搭

没有运维团队,就更要把部署这条路铺平:容器化、进程守护、反向代理、证书自动续期,四件事做到位就够用。

部署运维全栈

目标:让自己半夜不用爬起来

一个人做项目,最怕的是「服务挂了没人知道」。部署方案的设计目标很明确:出问题能自愈,出事能追溯。

四件事

1. 进程守护

进程一定要有人看着。pm2 是最省事的选择:崩溃自动重启、日志自动切分、开机自启。

一个经验:日志必须配 rotation。不然某个接口报错刷屏,磁盘几天就满。

2. 反向代理

nginx 负责三件事:TLS 终止、静态文件、请求转发。

路径规划上有个细节值得注意:静态资源和接口要分开走。静态交给 nginx 直接吐,接口才转发给 Node。这样 Node 进程不用扛静态文件的 IO。

3. 静态服务的越权风险

如果 Node 自己兼做静态服务,一定要配访问黑名单。否则源码、配置文件、.env、数据库凭据都可能被直接下载。

要拦的东西至少包括:源代码目录、依赖目录、日志目录、所有 .json、以及根目录的入口脚本文件。

4. 可回滚

上线前把要改的文件备份好,部署时只传改动的文件,不要整目录同步。线上代码和本地往往不一致,整目录覆盖等于埋雷。

上线顺序

有个容易被忽略的点:先停旧服务,再起新服务。

如果新服务里带了后台定时任务,而旧服务的定时任务还在跑,就会出现同一件事被做两遍——发消息的场景下,用户会收到重复通知。

正确的顺序是:

停旧后台任务 → 停旧 HTTP 服务 → 起新服务 → 验证 → 保存进程列表

← 返回文章列表