文章插图
Caddy是一个强大且可扩展的Web服务器、代理服务器 。Caddy使用Go语言开发,支持HTTP/2IPv6、Markdown、WebSockets、FastCGI、模板等等,目前已经超过42k star 。
功能特性
- 相比Nginx,使用Caddyfile配置更加简单,同样也支持JSON配置
- 默认支持HTTP/2协议,无需单独配置
- 自动获取和更新TSL/OCSP证书,无需担心过期宕机问题
- 高度可扩展的模块化架构让 Caddy 做任何事情都不会臃肿
- 可以在任何平台运行,无需外部依赖
- 基于Go开发,保证内存安全
- 可轻松扩展到集群环境
Debian、Ubuntu、Raspbian:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-HTTPS 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
Fedora 或 RHEL/centos 8:
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy dnf install caddy
RHEL/CentOS 7:
yum install yum-plugin-copr yum copr enable @caddy/caddy yum install caddy
API使用入门
运行在2015端口并输出 Hello, world!
启动Caddy:
$caddy start
添加一个配置:
$curl localhost:2019/load-H "Content-Type: Application/json"-d @- << EOF { "apps": { "http": { "servers": { "hello": { "listen": [":2015"], "routes": [ { "handle": [{ "handler": "static_response", "body": "Hello, world!" }] } ] } } } } } EOF
浏览器加载:
$curl localhost:2015 Hello, world!
【GitHub 42k+星,这个号称超越Nginx的Web服务器有点厉害】反向代理简单配置
运行以下命令:
caddy reverse-proxy --to 127.0.0.1:9000
如果没有权限,可以绑定较高端口代理:
caddy reverse-proxy --from :2016 --to 127.0.0.1:9000
在Caddy目录中创建一个Caddyfile并包含以下内容:
localhost reverse_proxy 127.0.0.1:9000
然后,从同一目录运行:
caddy run
运行后,可以发送请求到 https://localhost 查看是否正常工作 。
更改代理地址也很容易:
:2016 reverse_proxy 127.0.0.1:9000
更改完成后,更新启动Caddy即可在localhost:2016访问代理 。
Caddyfile结构
caddy大部分配置都基于独创的Caddyfile完成,以下是它的结构:
文章插图
- Global options block 服务器全局配置:可用于配置是否启用 HTTPS 和 Admin API 等
- Snippet 可以复用的配置片段:定义好后认可以通过 import 关键字引用
- Site Block 单个网站配置:通过 file_server 可以配置静态代理,通过 reverse_proxy 可以配置动态代理
- Matcher definition 匹配定义:默认情况下指令会产生全局影响,通过它可以指定影响范围
- Comment 注释:使用#符号开头
- Site address 网站地址:默认使用 HTTPS ,如需开启 HTTP ,需要指定 http:// 开头
- Directive 指令:指令赋予了 Caddy 强大的功能
开源协议:Apache2.0
开源地址:https://github.com/caddyserver/caddy
推荐阅读
- 三星|沿用S22极简设计:Galaxy S23 Ultra变化将是三星史上最小
- 明星|这些明星改变了我对“方脸”的偏见,高级显气质,而且越老越耐看
- 香奈儿|一个半月,马思纯减掉20斤,潘玮柏减掉26斤,明星减肥为何很容易
- 日本|日本票选出最美女明星脸蛋:这结果宅男没法反驳
- 勒布朗·詹姆斯|一名NBA球迷分享了排队观看勒布朗·詹姆斯和其他NBA球星的区别:“现在才早上7点。”
- 电动车|极星2换电池比新车快贵30万!车主无语:直接走全损报废
- 星象|星象|Alex大叔 一周宇宙星象播报(8.22—8.28)
- 世界足坛十大“7号”球星 7号足球明星
- 星象|混迹职场不要“毫无原则”混迹职场不要“毫无原则”
- 星座男|工作中对领导的忠诚度就是你“不忠诚”