本文转载自微信公众号「HelloGitHub」,开源S开作者HelloGitHub
。后起转载本文请联系HelloGitHub公众号 。秀自带 众所周知
,免费Web 服务器是箱即 Web 开发中不可或缺的基础服务,在开发中经常会用到
。开源S开耳熟能详的后起开源 Web 服务器有久负盛名的 Apache、性能强劲的秀自带 Nginx。而我们今天要介绍的免费开源项目是采用 Go 编写的 Web 服务端“后起之秀”:Caddy 它拥有下载无需安装就能用、云计算零配置实现 HTTPS 等特点,箱即从而在强者如云的开源S开 Web 服务器中占据了一席之地。 在这个 HTTPS 必选的后起时代
,Caddy 凭借无需额外配置自动 HTTPS
,秀自带分分钟完成 HTTPS 站点搭建,免费使它成为了中小型 Web 服务的箱即首选服务器 。Caddy 深受开源爱好者们的喜爱 ,2014 年开源至今共收获了 3.6 万颗星。 项目地址 :https://github.com/caddyserver/caddy Caddy 是一个强大的
、建站模板可扩展的平台,可以为您的站点、服务和应用程序提供服务
。 使用 Caddy 可以在 Linux
、Mac、Windows 上快速部署 http(s) 站点或反向代理服务。支持 : 与传统的 Nginx 或者 Apache 相比,Caddy 整体只有一个可执行文件,安装便捷不易出现奇怪的依赖问题 ,配置文件结构清晰语法简单易于上手
,依托于模块化架构可以使用 Go 语言快速开发扩展模块
。 下面让我们上手把玩一番吧
。服务器租用 系统环境:Ubuntu 20.04 LTS Caddy 可以作为一个系统服务安装 ,命令: https sudo apt install caddy 注意 :这种方式安装完成后会启动服务
,开机自动启动。 还可以下载一个可执行文件使用。 复制$ mv caddy_linux_amd64 caddy # 将下载后的文件重命名方便后面指令输入,根据系统不同文件名不一样 x caddy # 为 Caddy 添加可执行权限 caddy # 将 Caddy 复制到 bin 目录这样可以在命令行随时使用 命令行执行 caddy version 命令,出现版本信息: 即为安装成功! 下面将演示如何通过 Caddy 完成 HTTPS 站点。只需要 4 步: Tips 例子用的香港云服务器域名为 :caddy.hellogithub.com 修改为你的域名即可 。 第一步:安装,采用上面介绍的命令安装 第二步
:设置域名解析地址,在购买域名的网站设置
。如下图 : 设置完生效需要几分钟,可通过下面的命令检查是否生效
: 域名设置生效
,返回如下: 第三步:创建配置文件 Caddyfile,无需额外的开启 HTTPS 的设置: 第四步
:启动 ,在同一目录下执行命令 :sudo caddy run Caddy 默认使用执行命令目录下的 Caddyfile 文件内的配置
。 最后,访问 caddy.hellogithub.com 检验效果吧! 这里将从 Caddy 常用命令开始 ,再到配置讲解,最后会通过一个实际案例来展示如何用 Caddy 配置网站和上线。 Caddy 的原生配置文件使用的是 JSON 格式。但是为了用户编写方便它提供了 Caddyfile 作为接口让用户可以快速配置站点信息,运行时 Caddy 会自动将 Caddyfile 的模板下载配置信息转为 JSON 配置文件
。 Caddyfile 所能提供功能不如 JSON 配置文件强大
,但是对于不需要复杂配置的用户而言完全够用了。 Caddyfile 的配置指令格式如下
: directive [] { # matcher 代表匹配器 ,如果提供则该指令将只对 matcher 描述的资源进行响应 subdirective [] # 子指令} Caddyfile 的文件结构如图所示: 下面将演示如何用 Caddy 搭建站点
,加深理解配置格式和命令使用。 目录结构 : 复制. ├── Caddyfile └── public 两个页面文件 index.html 和 HG.html 的内容如下 : 你好 ,世界
! HelloGitHub Caddyfile 配置内容如下: 复制# 如果本机没有 wordpress 则注释这一块儿的站点配置 # 部署一个 wordpress 站点 wordpress # 配置一个 fastcig 服务 # file_server # 配置一个文件服务 在当前目录输入: 复制$ caddy run # 启动 Caddy 最后 ,效果如下: 访问 :http://localhost:3000 可以看到页面展示 “你好,世界!” 访问:http://localhost:3000/public/HG.html提示输入用户名和密码,验证正确后才能看到页面 。 访问:http://localhost:4000 则会自动跳转到端口 3000 的页面 Caddy 除了简单易懂的配置文件方式 ,还提供了管理配置的接口。通过这些接口可以轻松实现 Web 服务器管理自动化 、集成发布等高级功能
。 提供的接口和功能: 由于篇幅问题这里就不再进行演示了,如果您想深入了解可以阅读 Caddy 的官方文档
。 看到这里你应该对 Caddy 有了一些了解,有没有一种相见恨晚的感觉? 虽然它的性能比不了 Nginx 但如果论上手的难易度 ,Caddy 甩 Nginx 几条街!主要是默认开启 HTTPS 功能太香了 ,你什么都不用管就可以免费、快速、轻松开启网站 HTTPS 。

一 、为什么使用 Caddy ?
二、安装


三、从零完成 HTTPS 站点




四 、上手教程
4.1 常用命令

4.2 配置文件

4.3 演示
4.4 提供接口管理方式

五
、总结