Caddy2 Web静态服务-配置案例

1. 创建默认文件

在 caddy 命令所在目录,创建文件:Caddyfile(默认文件必须是这个名),内容如下:

{
	log {
		output file C:/caddy_2.11.4_windows_amd64/logs/caddy.error.log {
			roll_size 20mb
			roll_keep 5
		}
		level INFO
	}
	email 123456@qq.com
	acme_ca https://acme-v02.api.letsencrypt.org/directory
}
# 下面域名必须事先配置好
static.xxx.com {
    tls 123456@qq.com
    root * C:\www\static
    file_server
    encode gzip zstd  # 开启压缩,优化加载速度
}

解释:acme_ca

acme_ca https://acme-v02.api.letsencrypt.org/directory

指定使用 Let's Encrypt 签证书,只要邮箱就能注册账户,门槛更低

解释:全局log配置

log {
		output file C:/caddy_2.11.4_windows_amd64/logs/caddy.error.log {
			roll_size 20mb
			roll_keep 5
		}
		level INFO
	}
  1. 企业生产环境一般不会保留控制台输出,建议只写文件。​请求量大时刷屏,控制台输出拖慢终端​,远程桌面/SSH 卡顿甚至卡死
  2. 日志文件写成绝对路径:如果是 注册成服务启动 的,工作目录很可能 不是 C:\caddy_2.11.4_windows_amd64,结果日志就跑到别的地方去了,你还以为没生成。

解释:邮箱配置

全局 email 123456@qq.com 是给整个 Caddy 实例设置一个默认 ACME 账户邮箱;站点块里的 tls 123456@qq.com 是给这个站点单独指定邮箱

两者都写,站点自己的 tls 邮箱优先 全局兜底,站点覆盖

2. 校验默认配置文件

**提示:**上面写的是正确的,这步其实没用,只是模拟正常配置流程

**注意:**默认配置文件名必须是 Caddyfile

caddy validate

没有问题就继续下一步

3. 格式化配置文件

**提示:**格式化配置文件的缩进、空格等,也就是说,不执行这步,也可行

1. 预览格式化效果

不会修改文件,输出到控制台

caddy fmt Caddyfile

2. 直接格式化默认文件

**注意:**默认配置文件名必须是 Caddyfile

caddy fmt --overwrite

4. 重新加载默认配置文件

可以不重启 caddy 服务器,重新加载配置文件

caddy reload