Caddy 初探

caddy 是使用 go 语言开发的一个 server 服务器

相对于 nginx 来说,这个部署更简单,配置起来也很简单,很适合搭私人站点使用,而且相比于 nginx 来说,这个只有单文件,很适合小白使用

而且,这东西最大的优点是,可以通过简单的配置来支持 https,而无需操心证书,另外还支持 http2 协议

这里有一份中文文档,请注意查收

入手

以 mac os 为例 我只需要 brew install caddy 然后, 运行 caddy,这样就完成了最简单的部署过程…

当然这是因为有默认配置的关系,整个项目是单文件的,就只有一个 caddy 文件

其他系统的参考官网

运行结果如下
图片
默认是 2015 端口,可能是代表这个项目是 2015 年创建/发布的?

然后打开 http://localhost:2015/ 就可以看到你的网页了,当然这里因为有默认的原因,你看到的也许是 404,或是其他的什么

自定义配置

caddy 支持命令行的一些简单配置和配置文件的复杂配置

命令行

使用caddy -h 可以看到最新最全的命令行参数列表
Caddy 初探_第1张图片

这里说命令行运行简单命令的意思并不是支持不全,而是有一些复杂的情况,如果用命令行来做调错比较麻烦

比如 -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 文件作为配置

localhost:80 {
    root /Users/caijinglong/www
    gzip
    log /Users/caijinglong/www/log/caddy.log
}

这里是一个简单配置方案 80 端口

这里就是开启 html 的文件目录,gzip ,指定日志文件,

这里需要将目录替换成你自己的目录

Caddy 初探_第2张图片

我的目录结构是这样的 只要我在这个目录下运行,就可以看到这样的  效果
Caddy 初探_第3张图片

Caddy 初探_第4张图片

我们的服务器就启动起来了

然后进行一些其他的配置

这里可以参考一下 http 协议的配置

我们在配置文件上有标题的概念 这个标题就是反向代理的地址
Caddy 初探_第5张图片

支持如下的格式,包括协议 host ,通配符,端口,path

docker 的方式配置

以当前的网站为例,我在阿里 dns 上配置了域名解析,然后我只需要如下配置即可完成 kikt.top www.kikt.top的配置,且自动完成了 https 协议

首先是 Caddyfile

kikt.top {
  gzip
  tls [email protected]
}

www.kikt.top {
  gzip
  tls [email protected]
}

这里我没有指定目录是因为 Caddy 的 docker 镜像中我配置了映射的原因

docker-componse.yaml

version: "3"
services:
  blog-web-caddy:
    image: abiosoft/caddy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - $HOME/docker/caddy/.caddy:/root/.caddy
      - $HOME/docker/caddy/Caddyfile:/etc/Caddyfile
      - $HOME/html/www:/srv
    environment:
      - TZ=Asia/Shanghai

这里我使用的镜像是abiosoft/caddy

这里有详细介绍,我只是使用了几个简单的配置

  1. 指定了端口号,将 80 443 端口映射出来
  2. 指定了文件映射,证书文件,Caddyfile,html 文件

去那边关掉 nginx 后

接着执行docker-compose up -d,这样就完成了全部的部署,这样我的 blog html 服务器就从 nginx 切换到了 caddy ?

一些其他的配置

我的服务器中在 3000 端口有一个 gogs 的 git 服务器

我修改 Caddyfile

kikt.top {
  gzip
  tls [email protected]
}

www.kikt.top {
  gzip
  tls [email protected]
}

git.kikt.top {
  gzip
  proxy / kikt.top:3000
}

增加一个二级域名,把 git.kikt.top 代理到同域名的 3000 端口上

后记

caddy 总体来说还是入门比较容易的,配置也相对简单,但是目前可能还没有 nginx 的周边那么丰富,而且市场占有率现在也无法相比

如果是自己搭网站,可以用 caddy,简单易用,也不用考虑那么多东西,直接零配置支持 https

如果是为了今后的职业规划 nginx 还是必须要学习的

你可能感兴趣的:(服务器)