前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转CVM之部署Caddy

玩转CVM之部署Caddy

原创
作者头像
苏欣
修改2019-07-09 09:31:48
4.1K0
修改2019-07-09 09:31:48
举报
文章被收录于专栏:johnnyxsu技术交流分享

这是一个Web Server的时代,apache与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,是因为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 一个显著的特性是默认启用 HTTPS。它是第一个无需额外配置即可提供 HTTPS 特性的 Web 服务器。默认证书有效期为3个月,到期后能够自动进行续期,这极大降低了中小型网站启用HTTPS的成本和便利性。Caddy 默认通过检查域名来启用 HTTPS (通过 ACME protocol 检查域名并签发证书), 并且重定向 HTTP 请求到 HTTPS。它在启动期间根据需要签发证书,并在服务器的使用期间自动重签发。 Let's Encrypt 是默认的证书颁发机构,但用户可以自定义所使用的 ACME CA,这在测试配置时是必要的。当然用户还可以自行进行证书的配置。

1.安装Caddy

本文提供一键安装Caddy脚本,抛去琐碎的安装方法,简单快捷。适用的操作系统为:CentOS/Debian/Ubuntu。安装脚本可移步 GitHub上下载。

一键安装Caddy脚本
一键安装Caddy脚本

下载后直接运行脚本就能够进行一键安装。 wget --no-check-certificate https://github.com/suxin1110/CaddyInstall/caddy_install.sh && chmod +x caddy_install.sh && ./caddy_install.sh

Caddy 使用命令:/usr/local/caddy/Caddyfile

日志文件:cat /tmp/caddy.log

使用说明:service caddy start | stop | restart | status

或者使用:/etc/init.d/caddy start | stop | restart | status

2.配置说明

Caddy需要配置的文件就是Caddyfile,该文件默认的路径为/usr/local/caddy/Caddyfile

Caddyfile配置文件总是把网站域名放在第一行:

localhost:8080

gzip

log ../access.log

使用一个Caddyfile配置多站点,必须使用大括号来包含每个站点 mysite.com {

root /www/mysite.com

}

sub.mysite.com:443 { #写443 端口,会要求输入邮箱地址,自动生成ssl 加密证书gzip

root /www/sub.mysite.com

gzip

log ../access.log

}

Caddy也能够实现反向代理功能,相比其他Web Server的配置,Caddyfile反向代理的配置简直可以说处理拔萃,只需要一条命令就可以实现

mysite.com:8080 {

log ./mysite.log

proxy /a localhost:9091

proxy /bar localhost:9092

}

#当你访问mysite.com:8080:2015/a时,实际上访问的是9091端口的服务程序;

#当你访问mysite.com:8080:2015/b时,实际上访问的是9092端口的服务程序。

Caddy支持负载均衡配置,并支持三种负载均衡算法:random(随机)、least_conn(最少连接)以及round_robin(轮询调度)。负载均衡同样是通过proxy middleware实现的。

localhost:8080 {

log ./mysite.log

proxy / localhost:9091 localhost:9093 {

policy round_robin

}

proxy /b localhost:9092 localhost:9094 {

policy least_conn

}

}

caddy的功能不局限于上面的几个例子,上面只是几个最为常见的场景,Caddyfile中详细配置文档可参考如下 https://caddyserver.com/docs

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档