主 题
博客系统自文档 · 第 13/16 篇
目录 · 上一篇:安全与限流 · 下一篇:性能优化实录
写在前面
本地三仓库开发,线上 Nginx + PM2 + MySQL + Redis。本篇是运维向 checklist,与「写连载 SQL 发文」互补。
功能与体验
| 组件 | 线上形态 | 端口/路径 |
|---|---|---|
| blog-server | PM2 Nest | :5000 |
| blog-home-nuxt | PM2 Nuxt output | :5050 |
| blog-admin | 静态 dist | admin 子域 |
| MySQL / Redis | 本机或 Docker | 3306 / 6379 |
主域:jiang-xia.top;API:/x-blog/api/v1/。
设计与实现
目录(典型)
/opt/jxapp/
├── config/nginx/
├── front/blog-admin/
└── server/
├── blog-server/ PM2
└── blog-home-nuxt/output/ PM2
详见 deploy/服务器首次部署博客系统要点.md。
发布流程
后端代码:
- 上传 / git pull
npm run build(若需)pm2 restart blog-server- 若有 SQL patch →
mysql < patches/xxx.sql - RBAC 变更后:
redis-cli DEL public_api_paths api_permission_mappings
Home 前端:
yarn build→.output- 上传至 server 目录
pm2 restart blog-home-nuxt- 若 nginx conf 变更 →
nginx -t && reload
Admin:仅上传 dist/,无 PM2。
SQL patches 约定
| 规则 | 说明 |
|---|---|
| 路径 | deploy/sql/patches/YYYY-MM-DD-描述.sql |
| 幂等 | INSERT ... WHERE NOT EXISTS |
| 登记 | patches/README.md |
| 新环境 | 仅跑 init.sql(已合并历史 patch) |
自文档连载另用 docs/self-doc/sql/(内容数据,非 schema patch)。
Docker 可选
根目录 docker-compose.yml:mysql + redis + server + nginx,适合一体化试跑。
踩坑与取舍
- Nginx alias 路径:
_nuxt必须指向.output/public/_nuxt/,与 conf 注释一致。 - patch 忘刷 Redis:表现为新接口 403 或公开接口仍要登录。
- MySQL 9 客户端 collation:自文档 SQL 需
SET NAMES utf8mb4 COLLATE utf8mb4_general_ci。
系列导航
- 导读 · 第 0 篇
- 下一篇:14 性能优化实录
延伸阅读
deploy/菜单权限增量更新流程.mddeploy/sql/patches/README.md

全部评论(0)