使用Caddy一键部署网站+自动SSL小绿锁
Caddy
是一个对标Nginx
的 Web 容器,采用Golang
编写,主打采用更少的配置来完成需求。特点如下:
- 自动申请SSL证书
- 自动续期证书
- 极简的配置项
- 一行配置反代
Docker Compose 安装(推荐)
准备工作
在安装之前,需要准备一个配置文件 Caddyfile
,内容如下:
# 引入所有配置文件
import /conf/*.caddy
安装
Docker Compose
文件献上:
version: "3.7"
services:
caddy:
image: caddy:latest
restart: unless-stopped
networks:
- persist
- default
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ../data/caddy/Caddyfile:/etc/caddy/Caddyfile
- ../data/caddy/site:/srv
- ../data/caddy/conf:/conf
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config:
networks:
persist:
driver: bridge
attachable: true
default:
name: compose_default
external: true
这里注册一个网络以及加入compose网络的主要目的是为了方便的反代其它容器
配置站点
所有的站点都配置/conf
目录,所以要在映射的目录下编写配置文件,建议比较复杂的话就一个站点一个配置文件。
每一个配置文件后缀名为:.caddy
, 增加配置文件后记得重启或者重新加载配置文件生效
反代同网络中的容器
可以直接使用容器名的前提是容器与caddy
处于同一网络
domain {
reverse_proxy container:port
}
# 例如
www.example.com {
reverse_proxy web_server:80 # 80可以省略
}
带路径的反代
domain {
reverse_proxy path target:port
}
# 例如
www.example.com {
reverse_proxy /api/* web_sever:80
}
想反代指定路径的请求,可以通过handle
达到目的,同时还可以 Rewrite
重写请求来满足更定制化的需求:
domain {
handle path_reg {
rewrite match_reg target_path
reverse_proxy target:port
}
}
# 例如
www.example.com {
handle /api/v1/* {
rewrite * /api{path}
reverse_proxy web_server:80
}
}
更多需求可以查看官方文档
评论已关闭