作为新兴 Web 服务器,Caddy 提供了很多简单易用的功能而没有历史的包袱,其默认支持并且能帮你自动配置 HTTP/2、HTTPS,对于 IPV6、WebSockets 都有很好的支持。基于 Go 编写的 Caddy 天生对于多核具有很好的支持,并且其丰富的插件系统提供了文件管理、文件上传、基于 MarkDown 的博客系统等等开箱即用的扩展功能。
我们可以在官方下载界面选择你需要的插件功能定制个性化二进制文件,下载完毕之后即可以使用caddy命令直接运行。其默认监听 2015 端口,在浏览器中打开 http://localhost:2015 即可以查看其运行情况。我们也可以通过-conf
参数指定配置文件:
$ caddy -conf="/path/to/Caddyfile"
- 运行命令caddy, -conf 指定 Caddyfile 文件地址
- 如在 Caddyfile 所在目录打开命令行,直接执行 caddy 即可
站点配置(Caddyfile文件解析)
典型的 Caddyfile 配置文件如下所示:
localhost:80
gzip
browse
ext .html
log access.log
proxy / localhost:3006
proxy /services 10.110.200.38:9982
proxy /**/fae 10.110.200.29:8888
proxy /openapi 10.110.200.38:8088 {
header_upstream Authorization e6c2c868b0acc851f0657fbe9faf3fb9d00d5306
}
- 每个 Caddyfile 的第一行必须描述其服务的地址:
localhost:80
- 之后的每一行都是官方提供的指令,譬如我们需要为服务器添加 gzip 压缩支持,只需要直接添加一个指令:
gzip
- 反向代理(匹配请求地址,代理到后台服务器)
proxy / localhost:3006
proxy /services 10.110.200.38:9982
proxy /**/fae 10.110.200.29:8888
proxy /openapi 10.110.200.38:8088 {
header_upstream Authorization e6c2c868b0acc851f0657fbe9faf3fb9d00d5306
}
- 跨域请求
cors / {
origin http://allowedSite.com
origin http://anotherSite.org https://anotherSite.org
methods POST,PUT
allow_credentials false
max_age 3600
allowed_headers X-Custom-Header,X-Foobar
exposed_headers X-Something-Special,SomethingElse
}