H5 占位页
用于验证 Nginx 的三段式域名分离配置可正常路由。
真实的 Next.js 工程在 monorepo 的 apps/h5 下。
本地域名映射
| 域名 | 职责 | 后端 |
| m.mazhiguo.cn | H5 页面(漏斗入口) | h5:3000 |
| api.mazhiguo.cn | 接口、限流、区域注入 | api:3000 |
| vod.mazhiguo.cn | 视频分发(生产由 Bunny 直供) | r2-mock:9000 |
本地通过 extra_hosts 把三个域名都指向 127.0.0.1,
再用 Host 头区分。生产环境是三个真实域名。
验证命令
# 健康检查
curl -s http://api.mazhiguo.cn:8080/health/live
# 免费集:应返回 201 + playToken
curl -s -X POST http://api.mazhiguo.cn:8080/v1/play/88001/token \
-H "Authorization: Bearer $TOKEN" -H "X-Region-Code: US"
# 第 6 集未解锁:应返回 402,响应体即付费墙
curl -s -i -X POST http://api.mazhiguo.cn:8080/v1/play/88006/token \
-H "Authorization: Bearer $TOKEN" -H "X-Region-Code: US"
# 播放域名应拒绝密钥文件访问
curl -s -o /dev/null -w "%{http_code}\n" http://vod.mazhiguo.cn:8080/keys/1024.key
# 期望 403
关键验证点
第 6 集返回 402 而非 200 |
权限裁决在服务端 |
| 402 响应体含完整付费墙参数 |
前端无需二次请求 |
.key 路径返回 403 |
密钥不经分发域名下发 |
| 页面域名与播放域名分离 |
防盗链第一层 |