Caddy
如果你已经有域名,并且希望尽快把 HTTPS 一起配好,那么 nb proxy caddy 通常是最省心的入口方式。
比起自己维护 Nginx 的证书配置,Caddy 更像是“先把入口层跑通”的默认捷径。
什么时候更适合用 Caddy
通常来说,下面几种情况优先考虑 Caddy:
- 你已经有域名,希望尽快接入 HTTPS
- 你不想自己维护太多证书和 TLS 细节
- 你只需要一个简单稳定的入口层
如果你已经在服务器上统一用 Nginx 管理很多站点,或者后面还要做比较重的缓存、访问控制和定制规则,那么继续看 Nginx 会更顺。
先按这三条命令操作
如果你只想先把 Caddy 入口层跑起来,默认记住这三条命令就够了:
如果本地已经安装好了 Caddy,把第一条改成 nb proxy caddy use local 就行。
多数场景下,先执行 use,再执行 generate,最后执行 reload 就够了。其他细节和更多命令,直接看后面的章节或 CLI 参考。
第一步:先选 Caddy 自己怎么运行
如果当前机器上已经安装好了 Caddy,直接用 use local 就行。
如果你想用 Docker 版的 Caddy,就用 use docker。
这里的 local / docker 指的是 Caddy 本身的运行方式。
使用 Docker 版 Caddy:
使用本地安装的 Caddy:
如果你后面忘了当前选的是哪一种方式,可以执行:
第二步:执行 generate
generate 用来按指定 env 生成 Caddy 配置。最常见的写法是:
如果你还想指定入口端口,也可以一起写:
这里的参数含义是:
--env:指定为哪个 CLI env 生成配置--host:指定对外访问域名--port:指定代理入口端口
对于 Caddy 来说,--host 尤其重要。正式环境里,默认尽量传一个已经解析到当前服务器的域名,这样 HTTPS 的接入会更自然。
如果命令提示 env 缺少 appPort,先执行:
如果你后续又改了 app-port、app-public-path 这类会影响代理结果的配置,记得重新执行 generate。
第三步:执行 reload
生成配置之后,直接执行:
多数场景下都直接用这条命令就行。如果当前还没跑起来,内部会先处理启动;如果已经在运行,则会按最新配置重载。
CLI 会维护哪些文件
以 test2 为例,Caddy 相关命令通常会维护这些文件与目录:
其中:
NB_CLI_ROOT/.nocobase/proxy/caddy/...下面的是 CLI 维护的代理辅助文件NB_CLI_ROOT/test2/storage/...下面的是应用自己的静态资源和上传目录nocobase.caddy是 provider 级入口文件,通常不需要手动改app.caddy是某个 env 的完整 Caddy 站点配置,重新执行generate会整体覆盖
如果你要补 Caddy 站点级别的配置,比如额外 header、认证、限速或压缩策略,可以先以 app.caddy 为基准调整;不过要注意,后续重新执行 generate 会覆盖这个文件。
手写配置:不通过 CLI 时怎么做
如果你的应用不是 CLI 托管的,或者你明确要自己维护完整的 Caddy 配置,也可以手写。
不过对于 NocoBase 来说,生产环境入口通常不只是一个简单的 reverse_proxy。除了把 API 请求转发到后端应用之外,一份完整可用的 Caddy 配置通常还需要同时处理上传目录、前端静态资源、.well-known 路由、WebSocket,以及 SPA 回退页。

