caddy教程,nginx难用?配置HTTPS麻烦?试试caddy吧

阿涛 发布于 2024-09-02 108 次阅读


介绍

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

目前知名度跟Apache和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端口

example.com {
    encode gzip
    reverse_proxy localhost:8080
}

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

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

  • wechat_img
你剥开了一颗很酸的橘子而感到烦恼,可对于橘子来说,那是他的一切。
最后更新于 2024-09-07