标签 服务器 下的文章

0. 什么是 Caddy

Caddy服务器是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用Golang 标准库提供HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。

以下是基于 Ubuntu 18.04 的安装说明:

1. 安装

你可以直接从 Download Caddy 这里下载,选择好的你平台和插件就可以直接下载运行了。

当然,我比较推崇第二种方式,就是使用 https://getcaddy.com/ 的脚本安装。
官方不推进使用 root 权限来安装运行 caddy,所以我们直接使用普通用户权限执行以下命令即可。

$ curl https://getcaddy.com | bash -s personal

- 阅读剩余部分 -

Automatic HTTPS - Caddy 文档得知,Caddy 是支持配置 *.fun2ex.com这样的泛域名格式的。

直接参考文档的配置,/etc/caddy/Caddyfile 初始配置如下:

*.fun2ex.com
{
        tls {
            dns dnspod
        }
        root /var/www/html
}

我自己用的是 DNSPOD,具体的支持 DNS 服务商可以直接从文档查看。
接下来要设置 DNSPOD Auth Api 的环境变量,具体环境变量值可以从 Automatic HTTPS - Caddy 找到。

因为我用的是 systemd 来管理 caddy 进程,所以直接编辑 caddy 的 service 文件就行:

sudo vim /etc/systemd/system/caddy.service

找到 Environment= 这一行,加上环境变量的值,如要添加多个,使用空格分割:

; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy DNSPOD_API_KEY='$id,$hash_key'

让我们重启试试:

sudo systemctl restart caddy
sudo systemctl status caddy

未完待续…

  1. 將 nginx 調整為 caddy,世界上的網站都與 ssl 做好朋友
  2. How to specify an Environment systemd directive containing =? - Ask Ubuntu