caddy 是使用 go 语言开发的一个 server 服务器
相对于 nginx 来说, 这个部署更简单, 配置起来也很简单, 很适合搭私人站点使用, 而且相比于 nginx 来说, 这个只有单文件, 很适合小白使用
而且, 这东西最大的优点是, 可以通过简单的配置来支持 https, 而无需操心证书, 另外还支持 http2 协议
这里有一份中文文档, 请注意查收
入手
以 mac os 为例 我只需要 brew install caddy
然后, 运行 caddy
, 这样就完成了最简单的部署过程…
当然这是因为有默认配置的关系, 整个项目是单文件的, 就只有一个 caddy 文件
其他系统的参考官网
运行结果如下 默认是 2015 端口, 可能是代表这个项目是 2015 年创建 / 发布的?
然后打开 http://localhost:2015/ 就可以看到你的网页了, 当然这里因为有默认的原因, 你看到的也许是 404, 或是其他的什么
自定义配置
caddy 支持命令行的一些简单配置和配置文件的复杂配置
命令行
使用caddy -h
可以看到最新最全的命令行参数列表
这里说命令行运行简单命令的意思并不是支持不全, 而是有一些复杂的情况, 如果用命令行来做调错比较麻烦
比如 -agree 同意 CA 的协议
-ca XXX 获取指定 host 的 ca 证书
一般情况下比较有用的就是
-conf string
使用配置文件
-email string
ca 的 email
-host string
域名
-http-port string
http 协议的端口号 默认 80
-https-port string
https 协议的端口号 默认是 443
-port string
端口号
-log string
日志文件的目录
-http2
支持 http2 协议
这部分具体的可以参考 官网 cli 部分
CA 相关的 就是 https 要用到的东西
在使用域名的方式之前 你需要确定好你的域名解析是指向当前这台计算机的
配置文件
这个使用起来很简单 就是 caddy -conf XXX
这里的 XXX 是配置文件的目录
然后 caddy 会去读取配置文件 这部分可以参考官网 caddyfile 部分, 这个是 caddyfile 文件的基本语法
还有一种方式就是简单的使用caddy
这里 caddy 会在当前的运行路径下根据默认约定去寻找 Caddyfile 文件作为配置
这里是一个简单配置方案 80 端口
这里就是开启 html 的文件目录, gzip , 指定日志文件,
这里需要将目录替换成你自己的目录
我的目录结构是这样的 只要我在这个目录下运行, 就可以看到这样的 效果
我们的服务器就启动起来了
然后进行一些其他的配置
这里可以参考一下 http 协议的配置
我们在配置文件上有标题的概念 这个标题就是反向代理的地址
支持如下的格式, 包括协议 host , 通配符, 端口, path
docker 的方式配置
以当前的网站为例, 我在阿里 dns 上配置了域名解析, 然后我只需要如下配置即可完成 kikt.top
www.kikt.top
的配置, 且自动完成了 https 协议
首先是 Caddyfile
这里我没有指定目录是因为 Caddy 的 docker 镜像中我配置了映射的原因
docker-componse.yaml
这里我使用的镜像是 abiosoft/caddy
这里有详细介绍, 我只是使用了几个简单的配置
- 指定了端口号, 将 80 443 端口映射出来
- 指定了文件映射, 证书文件, Caddyfile,html 文件
去那边关掉 nginx 后
接着执行docker-compose up -d
, 这样就完成了全部的部署, 这样我的 blog html 服务器就从 nginx 切换到了 caddy 😁
一些其他的配置
我的服务器中在 3000 端口有一个 gogs 的 git 服务器
我修改 Caddyfile
增加一个二级域名, 把 git.kikt.top 代理到同域名的 3000 端口上
后记
caddy 总体来说还是入门比较容易的, 配置也相对简单, 但是目前可能还没有 nginx 的周边那么丰富, 而且市场占有率现在也无法相比
如果是自己搭网站, 可以用 caddy, 简单易用, 也不用考虑那么多东西, 直接零配置支持 https
如果是为了今后的职业规划 nginx 还是必须要学习的。
Comments | NOTHING