⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 极客之家 「丛林」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

在Web服务器领域,Nginx和Apache长期占据统治地位。现在有一款更优的选择!

如果你已经厌倦了管理复杂的 Nginx 配置文件和手动配置 SSL 证书,那Caddy 就是你的不二选择。Caddy自2014年开源以来,已经收获近65k star,受到众多开发者追捧。

简介

Caddy 是一个用 Go 语言编写的、开源的、功能强大的 Web 服务器。它的核心设计理念是简单易用和默认安全 (Secure by Default)。

优势

颠覆性的自动HTTPS

Caddy最革命性的特点是全球首个默认启用HTTPS的Web服务器。传统服务器需要复杂配置的SSL证书,而Caddy只需两行配置:

yourdomain.com
respond "Hello HTTPS!"

启动后,Caddy自动完成:

  • 通过ACME协议(默认使用Let’s Encrypt)申请证书
  • 自动配置HTTPS并监听443端口
  • 将HTTP请求重定向至HTTPS
  • 后台自动续期证书,无需人工干预

这一特性让个人博客、中小型站点彻底告别证书管理烦恼。

极简设计与强大功能

与臃肿的传统服务器不同,Caddy采用单一静态二进制文件,无任何依赖(甚至不依赖libc),安装只需3步:

wget https://github.com/caddyserver/caddy/releases/latest/download/caddy_linux_amd64
chmod +x caddy_linux_amd64
mv caddy_linux_amd64 /usr/bin/caddy

但其能力却毫不缩水:

  • 原生支持HTTP/1.1、HTTP/2及实验性HTTP/3
  • 反向代理与负载均衡(含WebSocket)
  • 静态文件服务(隐藏.git等敏感文件)
  • Markdown实时渲染
  • IPv4/IPv6双栈支持
  • 内置BASIC认证、Gzip压缩等中间件

安全

采用Go语言编写带来内存安全优势,天然免疫Heartbleed、DROWN等经典漏洞。其默认加密套件为ECDHE ECDSA + AES256-GCM-SHA384,支持TLS 1.3,并通过TLS_FALLBACK_SCSV防御协议降级攻击

实战

场景1:静态网站托管

假设目录结构如下:

.
├── Caddyfile
└── public
├── index.html
└── about.md

Caddyfile配置:

example.com {
root * ./public # 设置根目录
file_server # 启用文件服务
encode gzip # 开启压缩
templates # 支持模板渲染
}

运行caddy run,访问https://example.com,Caddy自动处理证书和HTTPS跳转!

场景2:带认证的反向代理

保护内网应用的安全暴露:

api.example.com {
reverse_proxy localhost:8080 # 转发到本地服务
basicauth /admin/* { # 为/admin路径添加认证
admin JDJhJDE0JGEySk9janFMdHlBY2Y0aVdQZklQak9HcmwzNDZhNFg0N3V5Ny9EZkZMZHB1Nkt4ZE5BNGJt
}
}

密码通过caddy hash-password生成,避免明文存储。

为何Caddy是未来之选?

  • 开发体验革命: 告别Nginx的繁琐配置,一条命令启动服务
  • 安全默认值: HTTPS即正义,Caddy将其变为现实
  • 云原生友好: 单一二进制+无依赖,完美适配Docker(docker pull caddy)
  • 扩展自由: Go模块化架构允许自定义中间件开发
  • 性能可靠: 经受数万亿请求验证,可扩展至数十万站点

真实案例: 某开发者原使用Nginx配置全站HTTPS,屡次因证书过期导致服务中断。迁移至Caddy后,运维时间减少90%。

开源地址

https://github.com/caddyserver/caddy

文章目录
  1. 1. 简介
  2. 2. 优势
    1. 2.1. 颠覆性的自动HTTPS
    2. 2.2. 极简设计与强大功能
    3. 2.3. 安全
  3. 3. 实战
    1. 3.1. 场景1:静态网站托管
    2. 3.2. 场景2:带认证的反向代理
  4. 4. 为何Caddy是未来之选?
  5. 5. 开源地址