Caddy是一款基于Go语言编写的强大且可扩展的平台,可以给你的站点、服务和应用程序提供服务。和nginx一样,caddy一样可以用来作为反向代理,配置更为简单。caddy分为两个版本V1和V2,本文使用的是V2版本。
安装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
安装完成后,可以使用systemctl status caddy查看caddy的状态
docker-compose安装
首先创建caddy文件夹,编辑Caddyfile文件,填入需要反代的配置,否则容器启动不了。
mkdir -p caddy
touch caddy/Caddyfile
cd caddy && nano Caddyfile
Caddyfile文件配置
a.example.com {
reverse_proxy a.b.c.d:3001
encode gzip
}
yml文件配置,参考官方配置
cd caddy && nano docker-compose.yml
version: "3.7"
services:
caddy:
image: caddy:latest
restart: unless-stopped
cap_add:
- NET_ADMIN
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- $PWD/Caddyfile:/etc/caddy/Caddyfile
- $PWD/site:/srv
- ./caddy_data:/data
- ./caddy_config:/config
当前目录下启动容器
docker-compose up -d
配置
先运行一个容器,然后进行反向代理测试,这里配置的是一个在3001端口运行的uptime-kuma监控程序
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
系统安装的方式配置
编辑/etc/caddy/Caddyfile这个文件,在文件最下方插入下面配置,然后重启caddy,caddy会自动申请证书,使用https访问
a.example.com {
reverse_proxy 127.0.0.1:3001
encode gzip
}
docker-compose安装方式配置
和系统安装方式配置内容一样,唯一不同的是127.0.0.1需要修改为外部真实的IP地址。
相关命令
systemctl status caddy
systemctl restart caddy