跳到内容
观澜涉川 · 札记EN

使用 Caddy 自动配置 Web 服务器的 SSL 证书

· 约 1 分钟阅读

Caddy自称是世界上第一个也是唯一一个自动和默认配置HTTPS的Web服务器(Caddy is the first and only web server to use HTTPS automatically and by default)。使用起来也非常简单。

基本配置

配置几个站点的基本步骤如下:

  1. 配置站点的域名
  2. 安装Caddy
  3. 编写或者修改配置文件Caddyfile
  4. 启动或者重启Caddy程序

首先,设置将域名指向服务器。比如在域名配置页面添加A记录,将服务器的IP作为A记录的值。

Caddy 的安装说明见其官方文档。可以使用包管理工具直接安装在服务器,也可以通过 Docker 来安装。以下假定在 Ubuntu 服务器上,使用包管理工具安装。安装好之后,Caddy会作为一个 systemd 服务启动和运行。

默认的配置文件Caddyfile位于/etc/caddy/Caddyfile中,修改其内容:把:80换成你的域名,例如app.example.com,核心内容如下:

app.example.com {
# Set this path to your site's directory.
root * /usr/share/caddy
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}

最后是使用service命令重启caddy服务:

Terminal window
service caddy restart

可查看其启动状态:

Terminal window
service caddy status

稍等片刻,使用域名和HTTPS协议即可访问默认的Caddy站点主页(即/usr/share/caddy/index.html)。

其他配置

除了基本配置,在实际中还会有更多配置。比如缓存、压缩等。

缓存控制

使用 header 指令配置缓存控制。比如:

app.example.com {
#...
header /assets/* Cache-Control max-age=31536000
#...
}

压缩

使用 encode 指令配置压缩编码。比如:

app.example.com {
#...
encode zstd gzip
#...
}

常见配置

官网的 Common Caddyfile Patterns 介绍了一些常见的配置模式。