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
}
这里我将域名mwine.science和www.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的网站!
这意味着什么? (薅羊毛)
- http3内置了tls1.3, 所以网站的安全性大大提升了,而且更快(具体可以了解http3协议)
- DNS解析可以使用Cloudflare去实现,毕竟他家宣称有最快的
1.1.1.1DNS服务器 (当然还有其他功能呢) - 然后TLS证书哪里来的? 实际上caddy自动帮你完成了
Let's Encrypt证书服务的接入和更新,可以通过日志查看。
而它们都是免费的!
常见问题
Q: Caddy自动生成的证书文件在哪里 A: store certificates ~/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory