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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

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

K8s Ingress 对照

Caddy 作 Ingress Controller 概念。

25 分钟

K8s Ingress 对照

Kubernetes 集群用 Ingress Controller 做七层路由与 TLS。常见实现是 Nginx Ingress;Caddy 也可作 Ingress Controller。理解裸机 Caddyfile 与 K8s 资源的映射,便于从 ngx-k8s 扩展阅读。

学习目标

  • 对照 Caddyfile site/handle 与 Ingress / Service
  • 了解 Caddy Ingress Controller 的 TLS 与 path 路由
  • 明确 CodeRoadMap 容器化后的推荐入口

核心内容

概念映射

裸机 CaddyKubernetes
reverse_proxy backend:8080Service backend:8080
handle /api/*Ingress path /api → backend Service
handle { ... }Ingress path / → platform Service
自动 ACME / 证书目录cert-manager Certificate + Secret tls
caddy reloadController reconcile CRD / Ingress

Ingress 示例(Nginx Controller,与 Caddy 路由等价)

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: coderoadmap
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  tls:
    - hosts: [www.coderoadmap.cn]
      secretName: coderoadmap-tls
  rules:
    - host: www.coderoadmap.cn
      http:
        paths:
          - path: /api(/|$)(.*)
            pathType: ImplementationSpecific
            backend:
              service:
                name: backend
                port:
                  number: 8080
          - path: /
            pathType: Prefix
            backend:
              service:
                name: platform
                port:
                  number: 3000

Caddy Ingress Controller 用 Caddyfile 模板 + Ingress 资源 生成配置;path 剥离 /api 等价 uri strip_prefix(caddy-api)。

裸机 vs K8s 选型

  • 单机 / Compose:docker-essentials + 宿主机 Nginx 或 Caddy
  • 多副本滚动发布:kubernetes-essentials Service + Ingress
  • TLS:集群内 cert-manager 类似 Caddy 自动 ACME;DNS-01 需 dns-essentials API 凭据
  • Pod 内通常 不再 每应用起 Caddy sidecar;入口统一由 Controller 处理。

    与 Spring / Next 部署

    • backend Deployment:containerPort 8080,ClusterIP Service
    • platform Deployment:containerPort 3000
    • kubectl port-forward 调试等价直连 upstream

    生产 CodeRoadMap 当前为裸机 Nginx;K8s 为架构演进选项,路由语义不变。

    练习

    • 将 Caddyfile 两个 handle 写成 Ingress 两条 path
    • 说明 cert-manager 与 Caddy 内置 ACME 的相似点
    • 对比 ngx-k8s 与本文 Ingress 注解差异

    小结

    Ingress 是声明式集群入口;双 path 仍对应 API 8080 与 Next 3000。 下一课排障。

    加载本节练习…
    ← 上一课Caddy vs Nginx下一课 →排障