505 字
3 分钟
caddy教程:nginx难用?配置证书很麻烦?试试caddy吧
2025-01-03

介绍#

caddy是和nginx一样的强大的web服务,使用go语言编写并且也是完全开源,优点是配置简单,并且自动申请并部署SSL证书,无需手动配置,大大简化了运维工作,对小白非常友好,唯一的缺点是并发量稍微不及nginx,但是这点缺点几乎可以忽略不记。除非你的网站流量高的离谱,对于一般的企业是达不到那种流量的,个人就更达不到的。

我的使用场景#

除了一般的网页服务,我经常配合docker使用,由于我比较喜欢用docker,所以经常使用caddy 或者 nginx-proxy-manager来反代docker的端口,他俩使用都很简单,本文着重介绍caddy。

1:安装caddy

由于CentOS已经停止维护,本文只介绍当前主流的系统debian和ubuntu系统,使用apt包安装。

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

sudo apt update

sudo apt install caddy -yq

2:配置示例

配置路径 /etc/caddy/Caddyfile

将域名example.com反向代理到本地8080端口

caddyfile配置

example.com {
    encode gzip
    reverse_proxy localhost:8080
}

将域名example.com代理到网站目录/var/www

caddyfile配置

example.com {
    root * /var/www
    encode zstd gzip
    file_server
}

3:常用命令

启动caddy

sudo systemctl restart caddy

caddy会占用80和443端口,api服务会占用本地2019端口,启动后会自动接管域名的证书管理,自动申请SSL证书和开启HTTPS加密。Caddy 默认使用 Let’s Encrypt 作为证书颁发机构(CA)来自动签发 SSL/TLS 证书,Let’s Encrypt申请证书有频率限制,如果你是测试使用,可以在caddy配置文件的域名指定为http格式,不开启HTTPS加密,例如caddy配置中域名可以这样写 http://example.com

查看运行状态

systemctl status caddy

检查配置语法是否正确

caddy validate --config /etc/caddy/Caddyfile

停止服务

sudo systemctl stop caddy

完全卸载

sudo apt-get purge --auto-remove caddy

证书路径

/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory
caddy教程:nginx难用?配置证书很麻烦?试试caddy吧
https://emohe.cn/posts/3/
作者
阿涛の小破站
发布于
2025-01-03
许可协议
CC BY-NC-SA 4.0