一、背景与介绍
无意之中看到公司部门的软件介质下载站点不是使用Nginx部署,而是使用Caddy。就比较好奇了,这个Caddy是个什么东西? 为啥他们没用Nginx呢,带着好奇心搜索了一下相关资料。
官方解释: Caddy is a powerful, extensible platform to serve your sites, services, and apps, written in Go. If you're new to Caddy, the way you serve the Web is about to change.
Caddy是一个功能强大、可扩展的平台,可为您的网站、服务和应用程序提供服务,使用Go编写。如果你是Caddy的新手,那么你为网络服务的方式即将改变。
官网地址: Welcome — Caddy Documentation
Github项目地址: https://github.com/caddyserver/caddy
Star数还挺高的,也是Go的一个明星项目。说白了看下来,总结下Caddy是个什么东东。
Caddy是对标Nginx的开源Web服务器,同时可以做反向代理、负载均衡等功能。 Nginx有的功能它也有。
已经存在Nginx为啥还要使用Caddy呢?
自我总结了Caddy的优势和应用场景如下:
1、使用Go语言编写,二进制轻量、跨平台、占用资源小, 当然这个nginx也具备
2、内置了很多开箱即用的功能,很多情景要编写Nginx的配置文件才能实现的功能,Caddy
就已经内置了。例如file-server部署一个简单的文件服务站点, 一条命令就能搞定, Nginx在这个场景里面就显得比较复杂(针对非运维或者不是很熟悉Nginx的人员而言)
3、入门门槛低, 针对配置https站点友好,一两条命令就能将你的站点变为https站点,同时支持ssl证书续签,这个功能很多的一些小站长方便使用.
下面带大家走一下file-server的demo就知道,想部署一个文件服务站点特别简单,3个步骤就完成了。
二、静态站点部署-入门操作
1、基本安装[centos、ubuntu等]
yum install yum-plugin-copr -y
yum copr enable @caddy/caddy -y
yum install caddy -y
2、以某个目录为基准,公开这个目录内容服务[类似文件服务器]
caddy file-server --root ./site/ --browse --listen :80
以./site/为root目录, --browse[目录、文件具有索引功能], 监听服务的端口在80
此时先记录下服务器目录结构:
3、访问站点服务,查看效果
三、总结
相对Nginx的地位来说,Caddy还任重道远。 开源业界各种说要取代Nginx的新闻资讯层出不穷,但是Nginx真的很能打,几乎没人会尝试一个新的Web服务器去取代已经高性能、稳定的Nginx。 除了个别大厂能够说使用自己自研的能力去替换Nginx, 相信绝大多数公司的体量能把Nginx玩明白都十分不起了!
每个产品都有自己的特点、特定合适的应用场景, Caddy的入门门槛确实低很多,也有很多内置开箱即用的功能,这是它的优势。 但如果生产环境要使用高性能的Web服务,还是继续推荐使用Nginx,不要轻易尝试Caddy,除非你能Hold得住它,给你的应用场景带来正向的反馈,否则就不要自寻烦恼。