概述

Caddy 反向代理(57条消息)用于在 tiger-host 服务器上提供 HTTPS 终结和流量转发。主要服务 Supabase、Mattermost 等应用的反向代理和 SSL 证书自动管理。同时也是 Nexora Platform (claw-bot) 的核心入口层,负责所有 Docker 服务的 TLS 终结和路由分发。

关键事件

  • 2026-03-07: 通过 DNS 前缀查出域名,配置域名连接
  • 2026-03-07: 配置 SSL 证书,使用 Caddy 中转 externalacr.azurecr.io
  • 2026-03-07: 推送 caddy:2-alpine 镜像到 ACR
  • 2026-03-10: 配置 Supabase 反向代理,将 /pg 路径流量切到 Kong 网关(Port 8000)
  • 2026-03-15: 排查连接被拒绝问题,检查 Caddyfile 配置
  • 2026-04-02: 总结 Supabase 完整信息(包含 key 等),输出为 Markdown

技术要点

  • 域名: tiger-host.chinanorth3.cloudapp.chinacloudapi.cn
  • 容器镜像: externalacr.azurecr.io/caddy:2-alpine
  • 路由规则: /pg* → Supabase Kong (Port 8000)
  • SSL: Caddy 自动管理 Let’s Encrypt 证书

经验教训

  • Caddy 自动 HTTPS 功能极大简化了证书管理
  • 反向代理路径匹配需注意通配符和优先级
  • 容器化部署的 Caddy 需要正确挂载 Caddyfile 和数据目录
  • 修改 Caddyfile 后需要 caddy reload 生效
  • Docker 网络隔离:Caddy 容器(mattermost-caddyweb-net)与 Supabase Kong(在 supabase_default)不在同一 Docker 网络时导致 502。修复:docker network connect supabase_default mattermost-caddy + 在 docker-compose.yml 永久添加 supabase_default 网络
  • HTML 缓存控制:Caddy 默认不设 Cache-Control header,对 PWA 的 index.html 需显式设置 no-cache(参见 pwa-ios-deployment

ClawCraft 反向代理配置

CraftBot 在部署 clawcraft 时大量使用 Caddy 反向代理:

生产环境 (craft.clawlines.net on owl)

  • 静态文件 + SPA fallback + API 反代 + gzip
  • /clawcraft/* → owl Gateway :18789
  • SSL 证书 Let’s Encrypt 自动获取
  • SSE 关键配置flush_interval -1 防止流式响应被缓冲

开发环境 (craft.dev.dora.restry.cn)

  • clawedbot Caddy 做全量反代 → owl:18852
  • owl Caddy 处理静态文件和 API 路由
  • 踩坑:两层 Caddy 都需要 flush_interval -1,否则 SSE 被缓冲导致 EventSource 无限重连

域名变更

  • clawcraft.octopus-ops.net — 已停用(2026-03-18)
  • 统一使用 craft.clawlines.net

相关主题

BiBot / Nexora 相关配置

以下信息来源于 bibot 和 nexora 的 Mattermost DM 聊天记录。

Agentic BI 开发环境 (bi.dev.dora.restry.cn)

BiBot 诊断并修复了 Caddy 路由问题:

  • 原始问题:Caddy 把所有流量代理到 port 3016(pm2 静态文件服务),/api/* 无法到达后端
  • 修复配置:添加路由规则 /api/* → 后端 8899,其他 → 前端 3016
  • 端口错误:曾配置指向 port 5173(无服务),实际前端在 3016、后端在 3017

Nexora Platform (claw-bot)

Nexora 在 claw-bot 服务器管理 Caddy 容器化部署(端口 80, 443, 8888),通过 FRP 内网穿透出公网:

域名目标
gitea.nexora.restry.cnGitLab CE (3000)
outline.nexora.restry.cnOutline (3000 内部)
portainer.nexora.restry.cnPortainer (9000)
uptime.nexora.restry.cnUptime Kuma (3001)
www.nexora.restry.cn静态门户站

TLS 证书签发注意事项

  • ACME HTTP-01 挑战时需确保 Caddy 在 80 端口也处理 www 域名请求
  • :80 块只有 respond "Lobster Platform OK",不处理 www 的 ACME 路径
  • 修复后所有域名 TLS 自动签发正常

安全事件:Nexora 曾为解决 OpenClaw 回调问题配置 claw.nexora.restry.cn 反向代理暴露 Gateway:18789 到公网,被用户否决后立即回滚。

Agent Portal (portal.dev.dora.restry.cn)

Agent Portal 部署在 clawedbot 服务器上,Caddy 在 mattermost-caddy Docker 容器内:

  • 前后端分离路由
    • /api/*172.17.0.1:3002(Express API server)
    • /172.17.0.1:3013(pm2 serve 静态文件)
  • 踩坑经历
    • 最初 Caddyfile 缺少 /api/* 分流,所有请求打到 pm2 静态服务,API 被 SPA fallback 吃掉返回 HTML
    • pm2 dev-portal 和 server.cjs 曾端口竞争 3013,需停掉 pm2 让 server.cjs 独占
    • 修复后将 Caddy 源文件同步到 matrix/caddy/Caddyfile,容器重启不丢配置
  • SSE 支持:需确保 SSE endpoint /api/ops/streamflush_interval -1 配置