概述
caddy 是一个 nginx 的替代品,用法很简单,作为静态文件服务器用起来很方便,这里介绍一下 ta的配置文件 caddyfile
结构
上面是官网介绍图,https://caddyserver.com/docs/caddyfile/concepts#structure
整体结构是:
- 最外层的
{}
是全局配置 -
xxx {}
是某一个端口或者某一个域名的配置
样例
这里分享一下我的服务器上的配置
{
debug
log {
output file /root/logs/caddy.log {
roll_size 100mb
roll_keep 5
}
}
}
http://sheep.xxxxxxx.ltd {
root * /root/yang2-local/
header {
Access-Control-Allow-Origin "{http.request.header.Origin}"
Access-Control-Allow-Credentials true
Access-Control-Allow-Methods *
Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization
}
encode gzip
#tls /opt/certs/sheep.xxxxxxx.ltd-2022.pem /opt/certs/sheep.xxxxxxx.ltd-2022.key
file_server
log {
output file /root/logs/yang-local.log {
roll_size 100mb
roll_keep 5
}
}
}
www.xxxxxxx.ltd {
root * /opt/fe/
encode zstd gzip
tls /opt/certs/xxxxxxx.ltd-2022.pem /opt/certs/xxxxxxx.ltd-2022.key
file_server
reverse_proxy /api/* localhost:8080
log {
output file /root/logs/admin-be.log {
roll_size 100mb
roll_keep 5
}
}
}
daohang.xxxxxxx.ltd {
root * /opt/daohang/
encode gzip
tls /opt/certs/daohang.xxxxxxx.ltd-2022.pem /opt/certs/daohang.xxxxxxx.ltd-2022.key
file_server
}
cancan.xxxxxxx.ltd {
root * /opt/cancan/
encode gzip
tls /opt/certs/cancan.xxxxxxx.ltd-2022.pem /opt/certs/cancan.xxxxxxx.ltd-2022.key
file_server
reverse_proxy /api/* localhost:8080
}
text-2-pic.xxxxxxx.ltd {
root * /opt/text-2-pic/
encode gzip
tls /opt/certs/text-2-pic.xxxxxxx.ltd-2022.pem /opt/certs/text-2-pic.xxxxxxx.ltd-2022.key
file_server
}
watermelon.xxxxxxx.ltd {
root * /opt/watermelon/
encode gzip
tls /opt/certs/watermelon.xxxxxxx.ltd-2022.pem /opt/certs/watermelon.xxxxxxx.ltd-2022.key
file_server
}
介绍
全局配置
-
debug
开启debug日志 -
log
打印日志,其余参数没啥好说的,看单词就知道啥意思
静态文件服务器
配置以域名开头,那么 caddy 就会通过请求Header 的host字段来做响应的动作
配置是端口,那么 caddy 会自动开启一个端口,并且应用配置
root
这一行是指定静态文件路径,配合file_server
一起使用encode
压缩编码,开启可以节省服务器带宽tls
证书路径,分别是公钥、私钥
反向代理
- reverse_proxy 第一个参数是请求path,第二个参数是把匹配的请求转发到哪里
端口形式
:8099 {
xxxx
}
域名形式
a.com {
xxx
}
caddy 默认会开启 80、443 端口
下载
https://caddyserver.com/download
这个是官网下载地址, caddy 有很多插件,不是所有的插件都在 release 里面,这个页面可以自行选择插件,网站会动态编译、下载
如果不需要额外的插件,那么直接下载就行
使用
- 启动
./caddy start
- 重新加载配置文件Caddyfile
./caddy reload