简介
Caddy
是一个简单易用的 Web 服务器,它支持自动配置 HTTPS,自动申请和更新证书,支持 HTTP/2,支持反向代理,支持 FastCGI,支持 WebSockets,支持 Markdown 渲染等等。
Caddy 2
是 Caddy
的下一个版本,它是一个全新的版本,使用 Go 语言编写,支持模块化插件,支持配置文件,支持自定义中间件等等。
比起 Nginx
和 Apache
,Caddy 2
更加简单易用。
安装
以在 Ubuntu
系统上安装 Caddy 2
为例:
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
配置
反向代理
Caddy 2
的配置文件是 Caddyfile
,它的语法非常简单。
以反向代理为例:
example.com {
reverse_proxy 127.0.0.1:3000
}
这个配置文件表示将 example.com
的请求转发到 127.0.0.1:3000
。
不标明协议时,默认启用 HTTPS
,Caddy 2
会自动申请证书。
设置请求大小限制
可以设置客户端请求的大小限制,这里设置为 10MB:
example.com {
request_body {
max_size 10MB
}
reverse_proxy 127.0.0.1:3000
}
设置请求头
可以通过设置请求头来传递 Host
和 IP
:
example.com {
reverse_proxy 127.0.0.1:3000 {
header_up Host {upstream_hostport}
header_up X-Real-IP {remote_host}
}
}
HTTP
Caddy 2
默认监听 80
端口,可以通过 http://
来访问。
反向代理 HTTP
请求:
http://example.com {
reverse_proxy 127.0.0.1:3000
}
运行
可以在当前目录创建一个 Caddyfile
文件,这样可以不指定配置文件路径。
如果需要指定配置文件路径,可以使用 --config
参数。
启动
使用 start
命令后台启动 Caddy
:
caddy start --config /path/to/Caddyfile
停止
使用 stop
命令停止 Caddy
:
caddy stop
重载配置
使用 reload
命令重载配置:
caddy reload --config /path/to/Caddyfile