博客系统自文档 · 第 13/16 篇
目录 · 上一篇:安全与限流 · 下一篇:性能优化实录
写在前面
本地多仓库开发,线上 Nginx + PM2 + MySQL + Redis。本篇是运维向 checklist,与「写连载 SQL 发文」互补。
功能与体验
| 组件 | 线上形态 | 端口/路径 |
|---|---|---|
| blog-server | PM2 Nest | :5000 |
| blog-server-go | PM2 / 可选独立子域 | :8000;go.jiang-xia.top |
| blog-home-nuxt | PM2 Nuxt .output |
:5050 |
| blog-admin | 静态 dist | admin 子域 |
| blog-home-uniapp | H5 静态 / 微信小程序包 | 可挂 go 子域;开发 :8008 |
| MySQL / Redis | 本机或 Docker | 3306 / 6379 |
主域:jiang-xia.top;Nest API:/x-blog/api/v1/。另可选 zone.jiang-xia.top。
设计与实现
目录(典型)
/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→ 上传静态资源(可挂go.jiang-xia.top) - 小程序:
pnpm build:mp→ 微信开发者工具上传审核 - 不纳入主域 Nginx SSR;联调默认 Go
:8000,生产亦可仍走 Nest/x-blog/api/v1
Go 单体(可选):make / PM2 起 :8000,nginx 见 deploy/nginx/conf.d/go.jiang-xia.top.conf。
SQL patches 约定
| 规则 | 说明 |
|---|---|
| 路径 | deploy/sql/patches/YYYY-MM-DD-描述.sql |
| 幂等 | INSERT ... WHERE NOT EXISTS |
| 登记 | patches/README.md |
| 新环境 | 仅跑 init.sql(已合并部分历史 patch) |
2026-06 ~ 08 典型增量(存量库按需执行;新环境对照 patches/README.md 是否已并入 init):
| patch | 说明 |
|---|---|
2026-06-22-wechat-miniprogram-login.sql |
微信小程序登录 |
2026-06-22-rpg-summer-festival-activity.sql |
夏日节日活动 |
2026-06-23-rag-knowledge-base.sql |
RAG 知识库表 + 菜单 |
2026-06-24-rag-phase1-phase2.sql |
RAG 多源索引 / FULLTEXT |
2026-06-25-rpg-level-reward-pity-profile.sql |
传说抽奖保底列 |
2026-06-25-rpg-guild-member-admin-api-permissions.sql |
公会成员 Admin RBAC |
2026-08-12-pay-order-reconcile-api-permissions.sql |
充值单一键对账 |
2026-08-14-site-tip-api-permissions.sql |
关于页赞赏公开 API |
涉及 RBAC 的 patch 执行后:redis-cli DEL public_api_paths api_permission_mappings。
自文档连载另用 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(及 Go 对等若有变更);改 uni-app 不影响 Web SSR。
- 加密网关 env:改
app_gatewayCrypto须同步deploy/pm2/env.production与前端VITE_NUXT_GATEWAY_CRYPTO。
系列导航
- 目录:博客系统分类
- 上一篇:12 安全与限流
- 下一篇:14 性能优化实录
- 导读:导读 · 第 0 篇
延伸阅读
deploy/菜单权限增量更新流程.mddeploy/sql/patches/README.mdblog-home-uniapp/README.md
出自项目
问题、方案与在线 Demo 见项目页对应区块

全部评论(0)