72 lines
2.1 KiB
Markdown
72 lines
2.1 KiB
Markdown
# Plaza 由 105 入口转发到 Studio
|
||
|
||
`plaza.tkmind.cn` 现在解析到 105 服务器,105 只负责公网入口和反代,最终回源到 Studio 上的 Plaza 生产服务。
|
||
|
||
## 架构
|
||
|
||
```text
|
||
浏览器 / 微信
|
||
↓
|
||
105 公网入口(plaza.tkmind.cn)
|
||
↓ nginx / 反代
|
||
Studio / 本机生产机
|
||
├─ :3001 Plaza Next.js(/plaza、/_next)
|
||
│ └─ rewrites → :8081(/api、/auth、/u)
|
||
└─ :8081 Memind Portal(server.mjs)
|
||
```
|
||
|
||
Next.js 通过 `PLAZA_API_PROXY` 把 API 请求转发到 Portal,无需单独 nginx。105 侧只负责把 `https://plaza.tkmind.cn/plaza` 回源到 Studio 的 `:3001`。
|
||
|
||
## 运行前提
|
||
|
||
- 105 上 nginx 配置正常,`/plaza` 和 `/_next` 代理到 Studio
|
||
- Studio 上 Plaza 已完成 `next build`
|
||
- Studio 上 Plaza 生产进程正在监听 `127.0.0.1:3001`
|
||
- Studio 上 Portal 正在监听 `127.0.0.1:8081`
|
||
|
||
## 日常启动
|
||
|
||
```bash
|
||
# Studio 上启动 Plaza 生产模式
|
||
pnpm start:plaza
|
||
|
||
# 开发模式(热更新,仅本地调试)
|
||
pnpm dev:plaza
|
||
|
||
# 全栈(MindSpace + Plaza + Ops)
|
||
pnpm dev
|
||
```
|
||
|
||
## 访问方式
|
||
|
||
| 场景 | 地址 |
|
||
|------|------|
|
||
| 本机直连 | http://127.0.0.1:3001/plaza |
|
||
| 105 公网入口 | https://plaza.tkmind.cn/plaza |
|
||
| 浏览器强制本地 | `pnpm open:plaza` |
|
||
|
||
## 常见故障
|
||
|
||
### 访问 502
|
||
|
||
优先按这个顺序检查:
|
||
|
||
1. Studio 上 `http://127.0.0.1:3001/plaza` 是否返回 200
|
||
2. Studio 上 Plaza 生产进程是否还在
|
||
3. 105 上 nginx 是否已经 reload 到最新配置
|
||
|
||
如果 Studio 的 `:3001` 没起来,105 再怎么转发也会 502。
|
||
|
||
### Studio 启动失败
|
||
|
||
如果 `pnpm start:plaza` 一直退出,优先看 `~/Library/Logs/plaza-prod.log`。这次修复里我们遇到过两类问题:
|
||
|
||
- `next/font/google` 在离线构建时会拉不到字体资源
|
||
- 类型检查会因为事件批处理数组的推断过宽而失败
|
||
|
||
## 已弃用
|
||
|
||
- 把 `plaza.tkmind.cn` 直接指到本机 `127.0.0.1` 的旧本地劫持流程
|
||
- 直接把 `plaza.tkmind.cn` 说明成 Cloudflare Tunnel 直连本机的旧说法
|
||
- “105 已停用、Plaza 全在本机且不经过 105”的旧文档描述
|