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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Caddy 反向代理入门/课时/综合练习
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 复现 CodeRoadMap 反代。

40 分钟

综合练习

本课在测试机用 Caddyfile 复现 CodeRoadMap 反代拓扑:自动 HTTPS、/api → Spring Boot :8080、/ → Next.js :3000,并对照 deploy/nginx/prod.conf.example 与 ngx-practice 验收。

学习目标

  • 从零编写 test 环境 Caddy 配置
  • 联调 spring-boot-essentials 与 nextjs-essentials 进程
  • 完成端到端 smoke test 与配置审查清单

核心内容

前置:启动后端与前端

# 终端 1 — backend
cd backend && ./mvnw spring-boot:run   # :8080

# 终端 2 — platform
cd platform && npm run dev             # :3000

确认 curl http://127.0.0.1:8080/tracks 与 curl http://127.0.0.1:3000 均正常。

部署 test Caddyfile

# deploy/caddy/test.caddyfile.example
{
    email admin@coderoadmap.cn
    # acme_ca ... staging 可选
}

test.coderoadmap.cn {
    handle /api/* {
        uri strip_prefix /api
        reverse_proxy 127.0.0.1:8080
    }
    handle {
        reverse_proxy 127.0.0.1:3000
    }
}
sudo cp deploy/caddy/test.caddyfile.example /etc/caddy/Caddyfile
caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

/etc/hosts 或 dns-records 将 test.coderoadmap.cn 指向本机。Docker 路线见 caddy-docker。

验收清单

检查项命令 / 操作期望
HTTPS 证书浏览器锁图标Let's Encrypt 有效
页面打开 /tracks/caddy-essentialsNext 渲染
APIcurl https://test.../api/tracksJSON 列表
路径剥离对比 :8080 /tracks与 /api/tracks 一致
上传管理端小文件 POST≤20MB 不 413

故障排查速查

502 Bad Gateway     → upstream 未监听 / handle 指错端口
404 on /api/foo     → 缺少 strip_prefix / handle 顺序
证书失败            → DNS、防火墙、staging 切换
HMR 失败            → Upgrade 头(caddy-proxy)

扩展(可选)

  • 加 coderoadmap.cn → www 的 redir 块
  • 复制 admin 静态 + /api 反代(caddy-static)
  • 与 Nginx test 配置并排 diff(caddy-vs-nginx)
  • 草拟 K8s Ingress YAML(caddy-k8s)

练习

  • 完成 test 环境全部验收表并记录一条 access 日志
  • 故意停 backend,观察 Caddy 返回码并恢复
  • 写 200 字:Caddy 自动 HTTPS 相比 Nginx+certbot 省哪些步骤

小结

本 track 目标:用 Caddyfile 复现 CodeRoadMap 双后端拓扑,理解 Nginx 备选方案。 生产深入见 nginx-essentials;容器见 docker-essentials;集群见 kubernetes-essentials。

加载本节练习…
← 上一课排障