Caddy
Caddy 首先是一个用Go实现的Web Server。
Caddy的作者Matt Holt有这样的理念: 其他Web Server为Web而设计,Caddy为human设计。一句话就是 Caddy主打易用性,使用配置简单。
Caddy有下面这些开箱即用的特性:
- 全自动支持HTTP/2协议,无需任何配置。
- Caddy 使用 Let’s Encrypt 让你的站点全自动变成HTTPS,无需任何配置。
- 合理使用多核多核 得益于go的特性
- 完全支持IPv6环境
- Caddy 对WebSockets有很好的支持
- 自动把Markdown转成 HTML
- Caddy 对log格式的定义很容易
- 易于部署 得益于go的特性,caddy只是一个小小的二进制文件,没有依赖,很好部署
- 得益于Go的跨平台特性,Caddy很容易的支持了三大主流系统:Windows、 Linux、Mac
安装 Caddy
自动安装
yum install -y yum-plugin-copr
yum copr enable @caddy/caddy
yum install -y caddy
查看安装目录
whereis caddy
#caddy: /usr/bin/caddy /etc/caddy /usr/share/caddy
- /usr/bin/caddy 为可执行文件
- /etc/caddy 为配置文件目录
- /usr/share/caddy 为静态文件目录
启动Caddy服务
systemctl enable caddy
systemctl start caddy
# 查看运行状态是否为active (running)
systemctl status caddy
访问80端口出现
手动安装
- https://caddyserver.com/download 进入到 caddy 官网的下载界面,选择平台和插件
- 然后使用下方 Direct link to download 内的链接即可
- 解压之后用 cp 命令放到 /usr/local/bin/caddy 就完成了安装
到/usr/local/bin/目录下执行caddy start
配置 Caddy
进入 /etc/caddy
vim Caddyfile
普通站点访问
example.com:80 {
gzip
log /var/log/caddy/access.log
root /var/www
tls /etc/ssl/cert.pem /etc/ssl/key.pem
}
example2.com:3000{
gzip
log /var/log/caddy/example2/access.log
root /var/www/example2
tls /etc/ssl/example2/cert.pem /etc/ssl/example2/key.pem
}
反向代理
http://www.example.com {
## HTTP 代理配置
### 此时访问 example.com,实际访问的是 127.0.0.1:8080/app/ 的内容
proxy / 127.0.0.1:8080/app/
## WebSocket 代理配置
### 客户端请求的 wss://example.com/app/websocket, 实际为 wss://127.0.0.1:8080/app/websocket
proxy /app/websocket 127.0.0.1:8080 {
websocket
}
}
负载均衡
proxy / web1.local:80 web2.local:90 web3.local:100 {
policy round_robin
}
Caddy常用命令
caddy start #开启Caddy Web Server
caddy stop #停止Caddy Web Server
caddy reload #重载Caddy Web Server
caddy restart #重启Caddy Web Server
caddy status #查看Caddy Web Server状态
caddy install #安装Caddy Web Server
caddy edit #编辑配置文件Caddyfile
caddy service #使Caddy Web Server成为一项服务(upstart/systemd)
caddy update #升级Caddy Web Server
caddy delete #卸载Caddy and data
caddy about #关于Caddy Web Server
caddy version #检测脚本/Caddy/PHP5-fpm版本信息