# 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”的旧文档描述
