下载与安装
下载到的exe是一个命令行工具,需要配置到环境变量中
中文文档
Caddyfile 快速入门 — Caddy v2中文文档 (dengxiaolong.com)
运行
caddy run
可能会出现如下错误(默认端口为2019,可能无法在该端口下运行)
PS D:\app\caddy-amd64> .\caddy.exe run
Error: loading initial config: loading new config: starting caddy administration endpoint: listen tcp 127.0.0.1:2019: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
在caddy.exe
目录创建Caddyfile
文件,内容如下:(将端口改为9000)
{
admin 127.0.0.1:9000
}
Caddyfile配置 — Caddy v2中文文档 (dengxiaolong.com)
再次尝试运行,正确运行结果如下:caddy.exe run
(不指定配置文件的情况下,会在命令执行目录找Caddyfile
文件作为默认配置文件,没有在当前目录找到配置文件的话,就使用程序的默认配置)
如果不在caddy.exe
目录下运行,那就需要显示的指定配置文件,否则还是会报之前的错误
使用curl localhost:9000/config/
, 得到的结果是
关于caddy adapt
命令
caddy adapt
默认会将当前目录下的Caddyfile
文件内容,转换为xml格式,并输出到控制台,并不会更新caddy
的配置
caddy adapt --config /path/to/Caddyfile
可以指定配置文件路径
如何更新caddy
配置
caddy
貌似不是增量更新,每次更新都必须全量更新(也就是说你每次更新都要传完整的配置)
方式一:通过curl将json配置文件传给caddy, 使得caddy更新
curl localhost:2019/load \
-X POST \
-H "Content-Type: application/json" \
-d @caddy.json
方式二:直接传递json配置文件内容
curl localhost:2019/load \
-X POST \
-H "Content-Type: application/json" \
-d @- << EOF
{
"apps": {
"http": {
"servers": {
"hello": {
"listen": [":2015"],
"routes": [
{
"handle": [{
"handler": "static_response",
"body": "Hello, world!"
}]
}
]
}
}
}
}
}
EOF
方式三: 直接传递Caddyfile
配置文件,来更新Caddy
配置
curl localhost:2019/load \ -X POST \ -H "Content-Type: text/caddyfile" \ --data-binary @Caddyfile