Caddyfile 配置文件快速入门教程
Caddyfile 配置文件的第一行始终是服务器的域名或者IP地址,例如:
localhost:8080
将上面内容保存为Caddyfile
,当你运行的时候,会自动寻找该文件,你可以指定文件配置路径:
caddy -conf ../path/to/Caddyfile
站点的下一行紧接着是指令,你可以点击查看全部指令,例如下面的gzip
指令可以压缩页面:
localhost:8080
gzip
指令的后面可以附带一个或者多个参数:
localhost:8080
gzip
log ../access.log
有些指令需要设置多个参数,这些指令需要在后面使用大括号添加一个块,大括号开始必须与指令同一行:
localhost:8080
gzip
log ../access.log
markdown /blog {
css /blog.css
js /scripts.js
}
If the directive block is left empty, you should omit the curly braces entirely.
参数里面如果包含空格必须使用"
括起来,#
后面跟着的是注释内容
# Comments can start a line
foobar # or go at the end
要在一个Caddyfile
里面配置多个站点,你需要使用多个大括号把对于站点的配置包括进来:
mysite.com {
root /www/mysite.com
}
sub.mysite.com {
root /www/sub.mysite.com
gzip
log ../access.log
}
大括号的开始({
)必须与站点名称同一行,大括号的结束(}
)必须单独一行,全部指令都需要写在对于站点的括号里面。
多个站点可以使用同一个配置,站点之间使用逗号分割:
localhost:8080, https://site.com, http://mysite.com {
...
}
可以在域名后面添加路径单独配置一部分文件,也可以在域名前面添加通配符*
:
example.com/static, *.example.com {
...
}
注意,上面会匹配到最长的那个文件夹或文件(可能会匹配到/statics
),你可以在路径后面添加/
防止出现这种情况。
可以在地址或者参数里面引用环境变量,支持Unix和Windows风格:
localhost:{$PORT}
root {%SITE_ROOT%}
这两种风格与平台无关,单个变量对应单个参数,即使一个变量中包含空格也不会被解析为多个参数。
Caddyfile
中并没有继承的语法,没有脚本,一个站点不能重复配置,但是可以通过使用import指令,减少冗余的指令。