双 11 薅了一下阿里云的羊毛 ,新vps用新工具武装下 。
What is Caddy
Caddy 首先是一个用Go实现的Web Server。
在追求性能的道路上,nginx已经一骑绝尘。这种情况下诞生的 Gaddy有什么特性呢?
Caddy的作者Matt Holt有这样的理念: 其他Web Server为Web而设计,Caddy为human设计。可以看出Caddy主打易用性,使用配置简单。得益于Go的跨平台特性,Caddy很容易的支持了三大主流系统:Windows、 Linux、Mac。
Caddy最大的特点是用起来简单, 它有下面这些开箱即用的特性:
- 全自动支持HTTP/2协议,无需任何配置。
- Caddy 使用 Let’s Encrypt 让你的站点全自动变成HTTPS,无需任何配置。
- 合理使用多核多核 得益于go的特性
- 完全支持IPv6环境
- Caddy 对WebSockets有很好的支持
- 自动把Markdown转成 HTML
- Caddy 对log格式的定义很容易
- 易于部署 得益于go的特性,caddy只是一个小小的二进制文件,没有依赖,很好部署。
“几乎所有的功能在Caddy里的都是插件,HTTP服务器是插件,高级的TLS特性也是插件,每一行命令实现的功能都是一个插件”
创建新用户
sudo adduser Andy # 交互式命令 使用adduser时,系统会提示你输入各种信息,然后会根据这些信息创建新用户
sudo usermod -a -G sudo Andy # 将Andy添加到 sudo 用户组
安装 golang
sudo apt install software-properties-common
sudo add-apt-repository ppa:gophers/archive
sudo apt update
sudo apt install golang-1.13-go
ls -l /usr/lib/go-1.13/bin # 安装位置
ln -s /usr/lib/go-1.13/bin/go /usr/bin/go
一键安装 Gaddy
CADDY_TELEMETRY=on curl https://getcaddy.com | bash -s personal
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7380 100 7380 0 0 6897 0 0:00:01 0:00:01 --:--:-- 6897
Downloading Caddy for linux/amd64 (personal license)...
Download verification OK
Extracting...
Putting caddy in /usr/local/bin (may require password)
Caddy v1.0.3 (h1:i9gRhBgvc5ifchwWtSe7pDpsdS9+Q0Rw9oYQmYUTw1w=)
Successfully installed
配置 Caddy
sudo mkdir -p /etc/caddy # 配置文件夹
sudo touch /etc/caddy/Caddyfile
Caddyfile
example.com:80
gzip
log /var/log/caddy/access.log
root /var/www
tls tls@outlook.com
首先第一行必须是网站的地址
首先第一行必须是网站的地址
首先第一行必须是网站的地址
gzip
log
root
tlstls /etc/ssl/cert.pem /etc/ssl/key.pem
如何设置多站点访问呢?
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
}
基本的 caddy 配置就这些,详细的内容可以去官网上看文档学习
成为比 Nginx 更好用的 web 服务器,这个目标Caddy已经达成了!
参考:
https://tonybai.com/2015/06/04/caddy-a-web-server-in-go/
https://github.com/golang/go/wiki/Ubuntu
https://zhuanlan.zhihu.com/p/25815245
https://www.zybuluo.com/zwh8800/note/844776
