用途:该技能用于管理本地开发用的反向代理,依托 Caddy 服务器的 Admin API(地址为 localhost:2019),为本地运行的服务分配并注册代理路由。
主要能力:
- 状态检查:curl -sf http://localhost:2019/config/ 可确认 Caddy 是否运行。
- 列出路由:curl -sf http://localhost:2019/config/apps/http/servers/local_proxies/routes,结果可按 Name | URL | Backend 表格展示。
- 注册代理:名称可由用户指定,或按项目目录名加短随机后缀生成(示例命令使用了 basename、tr、sed 与 urandom)。未指定端口时可扫描 3000 至 3100,用 lsof 找到空闲端口。若 local_proxies 服务器未初始化,可向 /load 发送 POST 创建监听 :80、路由为空的配置。随后向 /config/apps/http/servers/local_proxies/routes 发送 POST 添加路由。
- 删除代理:curl -sf -X DELETE "http://localhost:2019/id/proxy_NAME"。更新代理时先删除再按新端口重新添加。
路由 JSON 结构包含 @id(proxy_<name>)、match(host 为 <name>.localhost)、handle(reverse_proxy 指向 localhost:<port>)、terminal: true。
使用方式与限制:需先安装并启动 Caddy,例如 brew install caddy 与 caddy start;端口 80 被拒时需 sudo caddy start。若 Caddy 未运行,会提示安装与启动命令。路由已存在时应询问用户是更新还是换名。平台方面,macOS 上 *.localhost 自动解析到 127.0.0.1,Linux 可能需要在 /etc/hosts 中添加条目。资料未提供其他平台行为、版本要求、性能或安全说明。