博客系统自文档 · 第 13/16 篇
目录 · 上一篇:安全与限流 · 下一篇:性能优化实录
写在前面
本地四仓库开发,线上 Nginx + PM2 + MySQL + Redis。本篇是运维向 checklist,与「写连载 SQL 发文」互补。
功能与体验
| 组件 | 线上形态 | 端口/路径 |
|---|---|---|
| blog-server | PM2 Nest | :5000 |
| blog-home-nuxt | PM2 Nuxt .output |
:5050 |
| blog-admin | 静态 dist | admin 子域 |
| blog-home-uniapp | H5 静态 / 微信小程序包 | 独立构建,无 PM2 |
| MySQL / Redis | 本机或 Docker | 3306 / 6379 |
主域:jiang-xia.top;API:/x-blog/api/v1/。
设计与实现
目录(典型)
/opt/jxapp/
├── config/nginx/
├── front/
│ ├── blog-admin/
│ └── blog-home-uniapp/ # H5 dist(若部署)
└── server/
├── blog-server/ PM2
└── blog-home-nuxt/.output/ PM2(线上可能 symlink 为 output/)
详见 deploy/服务器首次部署博客系统要点.md。
发布流程
后端代码:
- 上传 / git pull
npm run build(若需)pm2 restart blog-server- 若有 SQL patch →
mysql … < deploy/sql/patches/YYYY-MM-DD-描述.sql - RBAC 变更后:
redis-cli DEL public_api_paths api_permission_mappings
Home Web 前端:
yarn build→.output- 上传至 server 目录
pm2 restart BlogHomeNuxt(见blog-home-nuxt/ecosystem.config.js)- 若 nginx conf 变更 →
nginx -t && reload
Admin:仅上传 dist/,无 PM2。
uni-app:
- H5:
pnpm build→ 上传静态资源 - 小程序:
pnpm build:mp→ 微信开发者工具上传审核 - 不纳入当前 Nginx SSR 链路;API 仍走主域
/x-blog/api/v1
SQL patches 约定
| 规则 | 说明 |
|---|---|
| 路径 | deploy/sql/patches/YYYY-MM-DD-描述.sql |
| 幂等 | INSERT ... WHERE NOT EXISTS |
| 登记 | patches/README.md |
| 新环境 | 仅跑 init.sql(已合并历史 patch) |
2026-06 典型增量(新环境若只用 init.sql 须确认已合并):
2026-06-22-wechat-miniprogram-login.sql— 微信小程序登录
自文档连载另用 docs/self-doc/sql/run-all-self-doc.sql(内容数据,非 schema patch;按 title 幂等 UPDATE)。
Docker 可选
blog-server/docker-compose.yml:mysql + redis + server + home + nginx,适合一体化试跑(服务名 sever 为历史拼写)。不含 uni-app。
踩坑与取舍
- Nginx alias 路径:
_nuxt必须指向.output/public/_nuxt/,与 conf 注释一致。 - patch 忘刷 Redis:表现为新接口 403 或公开接口仍要登录。
- MySQL 9 客户端 collation:自文档 SQL 需
SET NAMES utf8mb4 COLLATE utf8mb4_general_ci。 - 四端发版节奏独立:改 API 后须测 Nuxt + uni-app + Admin;改 uni-app 不影响 Web SSR。
系列导航
- 目录:博客系统分类
- 上一篇:12 安全与限流
- 下一篇:14 性能优化实录
- 导读:导读 · 第 0 篇
延伸阅读
deploy/菜单权限增量更新流程.mddeploy/sql/patches/README.mdblog-home-uniapp/README.md

全部评论(0)