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

2023-12-01#Caddy#HTTPS#SSL#Ubuntu

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修改为域名(即替换如下的your_domain_should_be_here为域名),核心内容如下:

your_domain_should_be_here {
	# 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服务:

service caddy restart

可查看其启动状态:

service caddy status

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

其他配置 🔗

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

缓存控制 🔗

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

domain_name {
  #...
  header /assets/* Cache-Control max-age=31536000
  #...
}

压缩 🔗

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

domain_name {
  #...
  encode zstd gzip
  #...
}

常见配置 🔗

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


加载中...