【Docker】使用 Docker Compose 部署 Caddy 服务器

使用 Docker Compose 部署 Caddy 服务器

使用 Docker Compose 部署 Caddy 服务器

本文档提供了一步一步的指南,用于使用 Docker Compose 部署 Caddy 服务器。Caddy 是一个现代的
Web服务器,可以轻松配置和自动管理TLS证书,非常适合托管网站和Web应用程序。

步骤 1: 创建目录结构

首先,创建一个名为 “caddy” 的文件夹,用于存放所有相关文件和配置。在 “caddy” 文件夹内,创建以
下子文件夹:

  • caddy/data : 用于存放Caddy服务器的数据文件。
  • caddy/config : 用于存放Caddy服务器的配置文件。

步骤 2: 创建 Caddy 配置文件

在 “caddy” 文件夹内,创建一个名为 “Caddyfile” 的配置文件,用于定义Caddy服务器的行为和规则。以
下是示例配置,您可以根据自己的需求进行修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 设置监听端口 
{
http_port 8080
https_port 8443
}
# 获取泛域名证书
*.xxxxxx.tk {
tls {
# 根据自己的DNS服务提供商配置
dns dnspod {env.DNSPOD_TOKEN}
# 或其他DNS服务提供商的配置,取消相应注释
# dns alidns {
# access_key_id {env.ALIYUN_ACCESS_KEY_ID}
# access_key_secret {env.ALIYUN_ACCESS_KEY_SECRET}
# }
# dns cloudflare {env.CF_API_TOKEN}
}
# 为不同子域名配置反向代理规则
@mp host mp.xxxxxx.tk
handle @mp {
encode gzip
reverse_proxy 192.168.50.100:3004
}

# 为pve子域名配置反向代理规则(适用HTTPS)
@pve host pve.xxxxx.tk
handle @pve {
reverse_proxy 192.168.50.2:8006 {
transport http {
tls_insecure_skip_verify
}
}
}
# 更多服务可以复制上面的规则继续添加

# 未处理的域名请求将被中止
handle {
abort
}
}

确保根据您的DNS服务提供商取消或保留相关注释,并填写相应的信息。

步骤 3: 创建 Docker Compose 配置文件

在 “caddy” 文件夹内,创建一个名为 “docker-compose.yml” 的Docker Compose配置文件,用于定义
Caddy容器的设置。以下是示例配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: '3' 
services:
caddy:
image: econome/caddy-dns
ports:
- "8080:8080"
- "8443:8443"
- "8443:8443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./data:/data
- ./config:/config
environment:
# 根据自己使用的DNS服务提供商配置,取消相应注释并填写信息
# dnspod配置
#- DNSPOD_TOKEN=611111,axxxxxxxxxxxxxxxxxx
# 阿里云dns配置
#- ALIYUN_ACCESS_KEY_ID=
#- ALIYUN_ACCESS_KEY_SECRET=
# CloudFlare配置
#- CF_API_TOKEN=

确保根据您的DNS服务提供商取消或保留相关注释,并填写相应的信息。

步骤 4: 启动 Caddy 服务器

在 “caddy” 文件夹内,使用以下命令启动Caddy服务器容器:

docker-compose up -d

这将启动Caddy服务器,根据您的Caddyfile配置进行反向代理和自动获取泛域名证书。确保您的DNS服
务提供商配置正确,并且您的域名指向了正确的IP地址。
现在,您已经成功部署了Caddy服务器,可以开始使用它提供HTTP和HTTPS服务。根据您的需求,您可
以进一步自定义Caddy配置。祝您顺利完成部署