CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Caddy 反向代理入门/课时/Caddyfile 语法
RawBlame
课时目录12 节

Caddy 反向代理入门

  1. 01Caddy 是什么
  2. 02安装与运行
  3. 03Caddyfile 语法
  4. 04自动 HTTPS
  5. 05反向代理
  6. 06双后端拓扑
  7. 07静态文件
  8. 08Docker 运行 Caddy
  9. 09Caddy vs Nginx
  10. 10K8s Ingress 对照
  11. 11排障
  12. 12综合练习

Caddyfile 语法

site block、directive、全局选项。

35 分钟

Caddyfile 语法

Caddyfile 是 Caddy 的声明式配置格式:按 站点块(site block) 组织,块内写 指令(directive)。比 ngx-config 的 server/location 更紧凑,HTTPS 常可省略。

学习目标

  • 读懂 site block、directive 与 matcher 基础
  • 配置全局选项块 { ... }
  • 将 Nginx location 概念映射到 Caddy handle / route

核心内容

最小站点块

# /etc/caddy/Caddyfile
www.coderoadmap.cn {
    respond "CodeRoadMap via Caddy"
}

Caddy 见到域名即 自动申请 HTTPS(需 80/443 可达且 DNS 正确,见 dns-essentials)。

全局选项

{
    email admin@coderoadmap.cn
    # acme_ca https://acme-staging-v02.api.letsencrypt.org/directory  # 测试用
}

www.coderoadmap.cn {
    encode gzip
    log {
        output file /var/log/caddy/access.log
    }
}

email 供 Let's Encrypt 账户通知;encode 类似 Nginx gzip on。

路径匹配与 handle

www.coderoadmap.cn {
    handle /api/* {
        reverse_proxy 127.0.0.1:8080
    }
    handle {
        reverse_proxy 127.0.0.1:3000
    }
}
  • handle /api/*:前缀匹配,类似 location /api/
  • 无路径的 handle:兜底,类似 location /
  • 多个 handle 按定义顺序 匹配,先写更具体的路径

常用指令对照

NginxCaddyfile
proxy_passreverse_proxy
root + try_filesroot + file_server / try_files
return 301redir https://...
listen 443 ssl站点域名即启用 TLS(自动)

练习

  • 写含全局 与两个 的 Caddyfile 并
{ email }
handle
caddy validate
  • 说明 handle 顺序对 /api/tracks 路由的影响
  • 将 prod.conf.example 的 server_name 改写为 Caddy site 块
  • 小结

    Caddyfile = 域名块 + 指令;路径用 handle,HTTPS 默认自动。 下一课自动 HTTPS 细节。

    加载本节练习…
    ← 上一课安装与运行下一课 →自动 HTTPS