生产版 Tunnel 状态报告和修复指南

日期: 2026-02-08
状态: ⚠️ 需要修复

问题诊断结果

✅ 已确认正常的部分

  1. Tunnel 连接状态

    • 容器:mbe-cloudflared ✅ 运行中
    • Tunnel ID:456cc7cd-718a-46f8-acd5-82dd7cd674c4(生产版 mbe-prod)✅
    • Token:生产版 Token 已正确配置 ✅
    • 连接状态:✅ Registered tunnel connection
  2. 基础设施

    • 生产版数据库 (mbe-postgres) ✅ 运行中
    • 生产版 Redis (mbe-redis) ✅ 运行中
    • Docker 网络 (mbe-monorepo_default) ✅ 已创建

❌ 需要修复的问题

  1. Cloudflare Dashboard 配置错误(主要问题)

    • 当前配置:Tunnel 路由指向开发版服务
      dev-app.hi-maker.com → mbe-pwa-dev:80
      admin.hi-maker.com → mbe-admin-ui-dev:3000
      aigc-dev.hi-maker.com → mbe-aigc-committee-dev:3002
      mbe-dev.hi-maker.com → mbe-api:8000
      
    • 应该配置为:生产版路由
      mbe.hi-maker.com → mbe-api:8000
      
  2. 生产版 API 服务问题

    • 容器:mbe-api ❌ 启动失败
    • 错误:权限问题 (Permission denied: /root/.local/bin/uvicorn)
    • 状态:Restarting (2)

修复步骤

🔴 紧急修复:更新 Cloudflare Dashboard 配置

这是最关键的一步,必须在 Cloudflare Dashboard 中手动完成。

  1. 访问 Cloudflare Dashboard

    URL: https://one.dash.cloudflare.com/
    路径: Networks > Tunnels > mbe-prod > Configure
    
  2. 删除所有开发版路由

    • 删除:dev-app.hi-maker.com
    • 删除:admin.hi-maker.com(如果指向开发版)
    • 删除:aigc-dev.hi-maker.com
    • 删除:mbe-dev.hi-maker.com
  3. 添加生产版路由

    • Subdomain: mbe
    • Domain: hi-maker.com
    • Service Type: HTTP
    • URL: http://mbe-api:8000
    • 说明: 使用 Docker 容器名 mbe-api,不是 IP 地址
  4. 保存配置

    • 点击 Save
    • 等待 10-30 秒让配置同步
  5. 验证配置更新

    # 重启 Tunnel 容器
    docker restart mbe-cloudflared
    
    # 等待几秒后检查日志
    Start-Sleep -Seconds 10
    docker logs mbe-cloudflared --tail 50 | Select-String "Updated to new configuration"
    

    预期输出:

    INF Updated to new configuration config="{\"ingress\":[{\"hostname\":\"mbe.hi-maker.com\",\"originRequest\":{},\"service\":\"http://mbe-api:8000\"},{\"service\":\"http_status:404\"}],\"warp-routing\":{\"enabled\":false}}"
    

🟡 次要修复:修复生产版 API 服务

生产版 API 服务存在权限问题,需要修复 Dockerfile 或重新构建镜像。

临时解决方案(如果只需要 Tunnel 连接):

  • Tunnel 配置更新后,即使 mbe-api 服务未运行,Tunnel 也会显示为 HEALTHY
  • 但访问 https://mbe.hi-maker.com 会返回 502 Bad Gateway

完整解决方案:

  1. 检查 Dockerfile 中的权限设置
  2. 重新构建生产版镜像
  3. 启动服务
# 检查 Dockerfile
cat d:\Mises\mbe-monorepo\docker\Dockerfile.api

# 重新构建镜像(修复权限问题后)
cd d:\Mises\mbe-monorepo
docker compose -f docker-compose.yml build mbe-api

# 启动服务
docker compose -f docker-compose.yml up -d mbe-api

验证清单

完成修复后,请验证以下项目:

  • Cloudflare Dashboard 中 mbe-prod Tunnel 状态为 HEALTHY
  • Tunnel 日志显示配置包含 mbe.hi-maker.comhttp://mbe-api:8000
  • 生产版服务 mbe-api 正在运行(如果已修复权限问题)
  • 可以访问 https://mbe.hi-maker.com/api/health(如果服务运行正常)

当前状态总结

组件 状态 说明
Tunnel 连接 ✅ 正常 已连接到生产版 Tunnel
Tunnel Token ✅ 正确 使用生产版 Token
Cloudflare 配置 ❌ 错误 路由指向开发版服务
生产版 API ❌ 失败 权限问题导致启动失败
数据库/Redis ✅ 正常 基础设施运行正常

下一步行动

  1. 立即执行:在 Cloudflare Dashboard 中更新 Tunnel 配置
  2. 随后修复:解决生产版 API 服务的权限问题
  3. 验证:测试生产版域名访问

相关文档