Caddy 配置文件备份

2023-10-21晚,在研究如何使用 caddy 通过 cloudflare api 新增 DNS 记录,也是折腾了好久。

用到的资料:
caddy 第三方 ddns 插件: https://github.com/mholt/caddy-dynamicdns ,使用这个插件的时候,需要把这个插件编译到 caddy 二进制文件中,todo:当时是怎么编译的
caddy 官方文档: https://caddyserver.com/docs/caddyfile/directives/tls#examples ,解释了如何使用 cloudflare 申请 tls 证书

配置文件做个备份:

# 这个模块是用来动态更新域名解析的,其中的 token 是 dns edit token
{
dynamic_dns {
provider cloudflare A9ko3agcDBZhdRTATQMdJDyAw5B3D3lToim70BS0JB
domains {
# 这里至少需要写一个 域名 和 子域名,
# 并且子域名必须是下面显示声明的
# 之后 dynamic_dns 会去寻找别的为罗列在此的域名
example1.com hello
# 同上
example1.com hello
}
ip_source simple_http https://ip.3322.net
dynamic_domains
check_interval 1m
}
 
log {
output file /var/log/caddy/access.log
}
}
 
(CACHE) {
@assets {
path *.ico *.css *.js *.gif *.webp *.avif *.jpg *.jpeg *.png *.svg *.woff *.woff2
}
@content {
not {
path *.ico *.css *.js *.gif *.webp *.avif *.jpg *.jpeg *.png *.svg *.woff *.woff2
}
}
header @assets cache-control max-age=31536000
header @content cache-control max-age=0
}
 
# 这个模块是 caddy 用来申请 ssl 证书用的,这里的 token 同上,也是 cloudflare 的 dns edit token
(TLS) {
tls {
dns cloudflare A9ko3agcDBZhdRTATQMdJDyAw5B3D3lToim70BS0JB
}
}
 
#blog.example1.com {
# import CACHE
# root * /srv/blog
# file_server
# encode gzip
# handle_errors {
# @404 {
# expression {http.error.status_code} == 404
# }
# rewrite @404 /404.html
# file_server
# }
#}
 
php.example1.com {
root * /srv/php
# https://caddyserver.com/docs/caddyfile/directives/php_fastcgi
php_fastcgi unix//run/php/php8.1-fpm.sock
file_server
encode gzip
}
 
hello.example1.com {
import TLS
respond "hello"
}
 
hello.example2.com {
import TLS
respond "hello"
}
 
storage.example2.com {
import TLS
import CACHE
root * /srv/storage
file_server
encode gzip
}