Caddy 简单介绍

Caddy是现代化的web代理服务器,使用Go语言编写,不直接依赖系统底层库。 另外,它很好地支持了https (也最先支持了http3), 而且它使用了现代化流行且安全的配置,几乎不需要额外配置。

安装使用

我们可以去官网下载2.0版本 https://caddyserver.com/ 我们只需要拿到二进制文件即可。

下载后放到/usr/local/bin/caddy, 然后编辑Caddyfile

/etc/Caddyfile

{
  # debug
  servers {
    protocol {
	    experimental_http3
    }
  }
}

www.mwine.science {
    # redirect www.mwine.science to mwine.science
	redir https://mwine.science{uri}
}

mwine.science {
	root * /var/www/html/mwine.science
	file_server
	encode zstd gzip 
}

配置参考 https://caddyserver.com/docs/caddyfile/options

这里我将域名mwine.sciencewww.mwine.science绑定到了同一台服务器,并将www.mwine.science重定向到mwine.science

然后创建一个文件/var/www/html/mwine.science/index.html

<!DOCTYPE html>
<html>
<body>
  Hello World !
</body>
</html>

最后运行起来就可以了 (这里我加上了watch选项,启用根据文件配置动态更新)

/usr/local/bin/caddy run -config /etc/Caddyfile -watch

或者我们可以将它写成systemd服务,输入命令编辑sudo systemctl edit --force --full caddy.service

粘贴以下内容

[Unit]                                                                          
Description=Caddy server daemon                                          
Wants=network-online.target
After=network.target network-online.target multi-user.target 
                                                                                 
[Service]                                                                        
ExecStart=/usr/local/bin/caddy run --config /etc/Caddyfile
Restart=on-failure                                                               
RestartSec=30
TimeoutStopSec=30
                                                                                 
[Install]                                                                        
WantedBy=multi-user.target

酱紫就完成了, 然后你就有了一个http3的网站!

这意味着什么? (薅羊毛)

而它们都是免费的!

常见问题

Q: Caddy自动生成的证书文件在哪里 A: store certificates ~/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory

参考