玩转CVM:部署Caddy

这是一个Web Server的时代,apache与nginx争奇斗艳,在追求极致性能的路上,你追我赶,没有最高,只有更高。但这又是一个追求个性化的时代,有些Web Server并没有去挤”Performance提升”这一独木桥,而是有着自己的定位,Caddy就是这样一个开源Web Server。

这是一个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上下载。

玩转CVM:部署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

}

}

本文来自腾讯云计算社区,转载请注明出处:https://computeinit.com/archives/3248

发表评论

登录后才能评论
交流群