众所周知,Web服务器是Web开发中不可或缺的基础服务,在开发中经常用到。著名的开源Web服务器包括Apache和Nginx。我们今天要介绍的开源项目就是Go编写的Web服务器的“后起之秀”:Caddy具有无需安装即可下载,实现零配置HTTPS的特点,从而在强大的Web服务器中占据一席之地。
在这个强制HTTPS的时代,Caddy在无需额外配置自动HTTPS的情况下,在几分钟内完成HTTPS站点建设,成为中小型Web服务的首选服务器。Caddy深受开源爱好者的喜爱。自2014年以来,开源已经获得了36,000颗星星。
项目地址:github.com/caddyserver/caddy
一、为什么使用 Caddy ?Caddy是一个强大的可扩展平台,可以为您的站点、服务和应用程序提供服务。

使用Caddy,您可以在Linux、Mac和Windows上快速部署http(s)站点或反向代理服务。支持:
与传统Nginx或Apache相比,Caddy整体只有一个可执行文件,易于安装不易出现奇怪的依赖问题,配置文件结构清晰,语法简单易于使用。依靠模块化架构,可以用Go语言快速开发扩展模块。
让我们一起玩吧。
二、安装环境:LTS Ubuntu 20.04
Caddy可以作为系统服务安装。命令:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy
sudo apt install-y debian-key ring debian-archive-key ring apt-transport-https
curl-1 SLF & # 39;https://dl.cloudsmith.io/public/caddy/stable/gpg.key' |须藤tee/etc/apt/trusted . gpg . d/caddy-stable . ASC
curl-1 SLF & # 39;https://dl . cloud Smith . io/public/caddy/stable/debian . deb . txt & # 39;| sudo tee/etc/apt/sources . list . d/caddy-stable . list
sudo apt update
sudo apt install caddy
注意:这样安装完成后,服务就会启动,启动后会自动启动。
您也可以下载一个可执行文件来使用。
在命令行上执行caddy version命令,将出现版本信息:
2 . 4 . 6 h1:HGKGICFGVYRODCQOOCL hkfvjc 0 qtu 7 vny/7 fhyp 9 hnw =安装成功!
三、从零完成 HTTPS 站点
下面将演示如何通过球童完成HTTPS网站。只需要4个步骤:
Tips例子中使用的域名是:caddy.hellogithub.com可以改成你的域名。
第一步:安装,使用上面描述的命令。
第二步:设置域名解析地址,设置在购买域名的网站上。如下图:
设置需要几分钟才能生效。您可以通过以下命令检查它是否生效:
卷曲& # 34;https://cloudflare-dns.com/dns-query? name = caddy . hello github . com & type = A & # 34;-H & # 34;接受:应用程序/DNS-JSON & # 34;域名设置生效并返回如下信息:
{"状态& # 34;:0,"TC & # 34:假的,& # 34;RD & # 34:真的,& # 34;拉& # 34;:真的,& # 34;公元& # 34;:假的,& # 34;CD & # 34:假的,& # 34;问题& # 34;:[{"姓名& # 34;:"caddy . hello github . com & # 34;,"类型& # 34;:1}],"回答& # 34;:[{"姓名& # 34;:"caddy . hello github . com & # 34;,"类型& # 34;:1,"TTL & # 34:592,"数据& # 34;:"107.150.122.176"}]}步骤3 :创建配置文件Caddyfile,不需要其他设置即可打开HTTPS:
caddy . hello github . com 回复& # 34;你好,HTTPS!"域名
第四步:在同一个目录下启动并执行命令:sudo caddy run。
Caddy默认使用命令目录下Caddyfile文件中的配置。
最后,去caddy.hellogithub.com看看效果吧!
这里,我们将从Caddy的常用命令开始,然后解释配置。最后,我们将通过一个实际案例展示如何配置网站和使用Caddy上线。
4.1 常用命令
Caddy的原生配置文件使用JSON格式。但是为了方便用户编写,它提供了Caddyfile作为用户快速配置站点信息的接口。运行时,Caddy会自动将Caddyfile的配置信息转换成JSON配置文件。
Caddyfile提供的功能虽然没有JSON配置文件强大,但是对于不需要复杂配置的用户来说完全够用。
Caddyfile的配置指令格式如下:
指令[& lt;matcher & gt]& lt;一个参数名...& gt{# matcher代表matcher。如果提供的话,这个指令将只响应matcher subdirective [
下面将演示如何用Caddy构建一个站点,以便更好地理解配置格式和命令用法。
目录结构:
。 index.html├──caddy file ├── └──公共 └── HG.html的两个页面文件index.html和HG.html如下:
& lt!——index.html->; & lt;!DOCTYPE html & gt & lt;html lang = & # 34恩& # 34;& gt & lt;head & gt & lt;meta charset = & # 34UTF-8 & # 34;& gt & lt;title & gt你好世界!& lt/title & gt; & lt;/head & gt; & lt;body & gt 你好,世界! & lt;/body & gt; & lt;/html & gt;& lt!——HG.html->; & lt;!DOCTYPE html & gt & lt;html lang = & # 34恩& # 34;& gt & lt;head & gt & lt;meta charset = & # 34UTF-8 & # 34;& gt & lt;title & gtHelloGitHub & lt/title & gt; & lt;/head & gt; & lt;body & gt hello github & lt;/body & gt; & lt;/html & gt;Caddyfile配置内容如下:
#如果这台机器上没有wordpress,请注意站点配置 #:80 {#部署一个wordpress站点 # root */var/www/WordPress # PHP _ fastguinix//run/PHP/PHP-version-fpm . sock #配置一个fastcig服务 # file_server #配置一个文件服务 # } http://localhost:3000/ #将当前站点的根目录设置为当前文件夹,*表示匹配所有请求 模板 file _ server { #将当前站点配置为静态文件服务器。它可以用来建立一个博客系统 hide。git #全部隐藏。git文件 } } :4000 { reverse _ proxy/public/* http://localhost只有匹配localhost:4000/public的请求才会被转发到localhost:3000/public/ }输入:
$ Caddy run #启动Caddy。最后,效果如下:
除了易于理解的配置文件方法,Caddy还提供了管理配置的接口。通过这些接口,可以轻松实现Web服务器管理自动化和集成发布等高级功能。
接口和功能由:
因为篇幅问题,这里就不演示了。如果你想了解更多,可以看看Caddy的官方文件。
五、总结看到这里,你应该对Caddy有所了解。有没有一种相见恨晚的感觉?
虽然性能比不上Nginx,但如果上手容易,Caddy扔Nginx几块!主要原因是,默认的HTTPS功能是如此之甜,你可以免费,快速,轻松地打开网站HTTPS,而不必担心任何事情。
最后,如果你想建立一个静态的博客或网站,去试试Caddy吧!吃了才香~
下面是HelloGitHub推出的“解释开源项目”系列,为你打开开源项目的大门。








