没有合适的资源?快使用搜索试试~ 我知道了~
这是一个Web Server的时代,apache2与nginx共舞,在追求极致性能的路上,没有最高,只有更高。但这又是一个追求个性化的时代,有些Web Server并没有去挤“Performance提升”这一独木桥,而是有着自己的定位,Caddy就是这样一个开源Web Server。 Caddy的作者Matt Holt在caddy官网以及FAQ中对caddy的目标阐释如下: 其他Web Server为Web而设计,Caddy为human设计。功能定位上,与经常充当最前端反向代理的nginx不同,caddy致力于成为一个易用的静态 文件Web Server。可以看出Caddy主打易用性,使用配置
资源推荐
资源详情
资源评论
Caddy 一个用一个用Go实现的实现的Web Server
这是一个Web Server的时代,apache2与nginx共舞,在追求极致性能的路上,没有最高,只有更高。但这又是一个追求个性
化的时代,有些Web Server并没有去挤“Performance提升”这一独木桥,而是有着自己的定位,Caddy就是这样一个开源Web
Server。
Caddy的作者Matt Holt在caddy官网以及FAQ中对caddy的目标阐释如下: 其他Web Server为Web而设计,Caddy为human设
计。功能定位上,与经常充当最前端反向代理的nginx不同,caddy致力于成为一个易用的静态 文件Web Server。可以看出
Caddy主打易用性,使用配置简单。并且得益于Go的跨平台特性,caddy很容易的支持了三大主流平台:Windows、 Linux、
Mac。在Caddy开发者文档中,我们可以看到caddy还可以在Android(linux arm)上运行。caddy目前版本为0.7.1,还不稳定,
且后续版本可能变化较大,甚至与前期版本不兼容,因此作者目前不推荐caddy在生产环境被 重度使用。
关注caddy,是因为caddy填补了go在通用web server这块的空白(也许有其他,但我还不知道),同时Web server in go也“响
应”了近期Golang去C化的趋势(Go 1.5中C is gone!),即便caddy作者提到caddy的目标并非如nginx那样。但未来谁知道呢?
一旦Go性能足够高时,一旦caddy足够稳定时,自然而 然的就会有人将其用在某些应用的生产环境中替代nginx或apache2
了。一套全Go的系统,在部署、运维方面也是有优势的。
一、安装和运行一、安装和运行caddy
和诸多go应用一样,我们可以直接从caddy的github.com releases页中找到最新发布版(目前是0.7.1)的二进制包。这里使用的
是caddy_darwin_amd64.zip。
下载解压后,进入目录,直接执行./caddy即可将caddy运行起来。
$caddy
0.0.0.0:2015
在浏览器里访问localhost:2015,页面上没有预期显示的类似”caddy works!”之类的默认Welcome页面,而是“404 Not
Found”。虽然这说明caddy已经work了,但没有一个default welcome page毕竟对于caddy beginer来说并不友好。这里已经
向作者提了一个sugguestion issue。
二、二、caddy原理原理
Go的net/http标准库已经提供了http server的实现,大多数场合这个http server都能满足你的需要,无论是功能还是性能。
Caddy实质上也是一个Go web app,它也import net/http,嵌入*http.Server,并通过handler的ServeHTTP方法为每个请求提
供服务。caddy使用 http.FileServer作为处理 静态文件的基础。caddy的诱人之处在于其middleware,将诸多middleware串成
一个middleware chain以提供了灵活的web服务。另外caddy中的middleware还可以独立于caddy之外使用。
caddy从当前目录的Caddyfile(默认)文件中读取配置,当然你也可以通过-conf指定配置文件路径。Caddyfile的配置格式 的
确非常easy,这也符合caddy的目标。
Caddyfile总是以站点的总是以站点的Addr开始的。开始的。
单一站点的Caddyfile样例如下:
//Caddyfile
localhost:2015
gzip
log ./2015.log
Caddy也支持配置多个站点,类似virtualhost的 配置(80端口多路复用):
//Caddyfile
foo.com:80 {
log ./foo.log
gzip
}
bar.com:80 {
log ./bar.log
gzip
}
为了实现风格上的统一,单一站点也最好配置为如下这种格式(代码内部称之为 Server Block):
localhost:2015 {
gzip
log ./2015.log
}
资源评论
weixin_38560797
- 粉丝: 5
- 资源: 997
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功