Caddy,简单好用的Http服务器

常年以来一直使用Nginx作为Http服务器,足够稳定效率也非常高,但是对于一个新手来说,学习Nginx的Conf配置并不是一个非常容易的事情,而且随着HTTPS的全面普及,Nginx上的HTTPS的配置还是比较复杂,而且对于免费的Let’s Encrypt也没有非常好的支持。惊叹就来给大家介绍一个更轻量更简单的Http服务器:Caddy。

先套用一张官网截图,看下Caddy的主要特性:

对于普通用户来说,其中比较重要的特性,莫过于全自动的HTTPS支持了(自动使用Let’s Encrypt申请并使用证书),今天就简单介绍下如何快速部署Caddy。

下载Caddy

Caddy官方网站可以根据你的需要很方便的下载到适用于各个平台的程序,并且可以根据你的需要安装相应的插件(例如实现IP过滤等功能),我的生产环境是Ubuntu,因此直接下载了Linux 64-bit版本。

Hello World

Caddy的使用非常简单,解压缩后,在目录下创建一个index.html,然后执行./caddy即可开启,访问 http://localhost:2015 就可以看到你刚才创建的index.html了

Caddyfile配置

Caddyfile是caddy的配置文件,详细的配置说明可以参考User Guide,我这里就直接介绍下我的Caddyfile配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
https://jayshao.com {   #首行都是以你配置的监听域名和端口开始,类似于Nginx的Server
gzip #开启gzip压缩
log /var/www/log/access.log #访问日志的配置
errors { #错误日志的配置
log /var/www/log/error.log {
size 50 #50M以后,自动分割
age 30 #分割文件最多保留30天
keep 5 #最多保留5个分割文件
}
}
tls i@jayshao.com { #启用HTTPS,并使用i@jayshao.com来作为账户自动申请Let's Encrypt的HTTPS证书
protocols tls1.0 tls1.2 #设置最低和最高的https协议
}
proxy / http://127.0.0.1:2368 { #我的后端使用Ghost博客,因此proxy_pass到后端的2368端口
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}
}
}

再次运行./caddy,稍等几秒申请完https证书后,HTTP服务就已经启动了,是不是非常简单?