· 4 min read
Caddy自动申请证书,反代利器 -- Nginx替代
Caddy 是一个现代化的 Web 服务器和反向代理服务器,使用Go语言编写。它可以用于多种用途,对比Nginx的配置与复杂的申请证书流程,Caddy配置更加简洁灵活,并开箱可用。

Caddy 是一个现代化的 Web 服务器和反向代理服务器,它可以用于多种用途,对比Nginx的配置与复杂的申请证书流程,Caddy配置更加简洁灵活,并开箱可用。
使用最新的http/2和tls1.3,提供 HTTPS 支持:Caddy 默认自带 Let’s Encrypt 自动证书申请和更新功能,使得搭建 HTTPS 服务器变得非常容易,无需手动配置证书和密钥。
反向代理:Caddy 可以代理多种后端服务,例如 Web 应用、API、数据库等,实现请求的负载均衡、缓存、重写等功能。
静态文件服务:Caddy 可以将指定目录下的静态文件以 HTTP 或 HTTPS 协议提供给客户端,支持文件压缩、缓存控制、目录浏览等功能。
自动化部署:Caddy 提供了许多有用的插件和自动化工具,可以帮助开发者快速构建和部署 Web 应用,例如支持 Docker 镜像、Kubernetes、Git 集成等。
插件扩展:Caddy 提供了丰富的插件系统,可以支持各种自定义功能,例如网站性能优化、安全加固、日志记录等。
安装
在debian/ubuntu上作为服务安装
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
配置文件默认位置为/etc/caddy/Caddyfile
Caddyfile配置文件
Caddy的配置十分简洁,且证书自动续签。
以下配置皆是Caddy 2的配置格式,与版本1不兼容.
静态文件服务器
your.domain {
root * /var/www
file_server
}
反向代理服务器(几个栗子)
yayashare.top, www.yayashare.top {
tls fake@gmail.com # 默认使用Let’s Encrypt SSL,自动续签
reverse_proxy :3001 # 代理本地3001端口
encode gzip
}
yaya.top {
tls {
issuer zerossl zerossl-api-key # 使用ZeroSSL
}
reverse_proxy /api/* https://api.yayashare.top {
header_up Host {http.reverse_proxy.upstream.host}
}
}
# 使用本地证书,并反代php
yy.top {
tls /usr/local/cf/yy.top.crt /usr/local/cf/yy.top.key # 使用本地证书
root * /data/wwwroot/yy.top/public
encode gzip
php_fastcgi unix//dev/shm/php-cgi.sock
file_server
}
# 反代绕过跨域检查
yaya.top {
tls fake@gmail.com # 默认使用Let’s Encrypt SSL,自动续签
reverse_proxy https://api.yayashare.top {
header_up Referer {http.reverse_proxy.upstream.host}
}
}
256K并发下的性能对比
| Test | 256K |
|---|---|
| Caddy (mean) | 1.471049ms |
| Nginx (mean) | 1.192198ms |
| Delta | Nginx is 23% faster |
| Caddy (95th percentile) | 2.087199ms |
| Nginx (95th percentile) | 1.83587ms |
| Delta | Nginx is 13% faster |
| Caddy (99th percentile) | 2.906458ms |
| Nginx (99th percentile) | 2.608383ms |
| Delta | Nginx is 11% faster |
对比Nginx性能差距还是有的,但是不大,对于中小型应用来说差别不大。



