Caddy简介

Nginx是一款非常流行的Web服务器,在Github上已有16K+Star,我们经常用它来做静态资源托管或反向代理。最近发现了一款全新的Web服务器Caddy,Star数超越Nginx,标星38K+Star。试用了一下Caddy,发现它使用起来比Nginx优雅多了,功能也很强大,推荐给大家!

SpringBoot实战电商项目mall(50k+star)地址:github.com/macrozheng/…

Caddy简介

Caddy是一款功能强大,扩展性高的Web服务器,目前在Github上已有38K+Star。Caddy采用Go语言编写,可用于静态资源托管和反向代理。

Caddy具有如下主要特性:

  • 对比Nginx复杂的配置,其独创的Caddyfile配置非常简单;
  • 可以通过其提供的Admin API实现动态修改配置;
  • 默认支持自动化HTTPS配置,能自动申请HTTPS证书并进行配置;
  • 能够扩展到数以万计的站点;
  • 可以在任意地方执行,没有额外的依赖;
  • 采用Go语言编写,内存安全更有保证。

安装

首先我们直接在CentOS 8上安装Caddy,使用DNF工具安装无疑是最简单的,Docker安装方式之后也会介绍。

  • 使用如下命令通过DNF工具安装Caddy,安装成功后Caddy会被注册成系统服务;
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy
复制代码
  • 使用systemctl status caddy查看Caddy的状态,可以发现Caddy已被注册为系统服务,但是还没开启。

使用

下面我们体验下Caddy的基本使用,对于Web服务器来说都是常用的操作,你准能用的上!

基本使用

首先我们来个Caddy的入门使用,让Caddy运行在2015端口上并返回Hello, world!

  • 直接使用caddy命令将输出Caddy的常用命令,基本看介绍就知道如何使用了,标出来的是常用命令;

  • 使用caddy start命令可以让Caddy服务在后台运行;

  • Caddy默认使用JSON格式的配置文件,但由于JOSN格式配置书写比较麻烦,又提供了Caddyfile这种更加简洁的配置形式,使用如下命令能自动把Caddyfile转化为JSON配置;
caddy adapter
复制代码
  • 我们可以先创建一个名称为Caddyfile的文件,文件内容如下,然后使用caddy adapter将它转换为JSON配置,再使用caddy reload使配置生效,该配置将监听2015端口,并返回Hello, world!
:2015

respond "Hello, world!"
复制代码
  • 然后我们使用curl命令访问localhost:2015,将返回指定的信息;

  • 当然我们还可以使用Caddy提供的Admin API来查看配置信息,使用如下命令即可;
curl localhost:2019/config/
复制代码
  • 当前JSON配置如下,如果你直接使用JSON配置的话需要书写如下配置,使用Caddyfile确实方便很多!
{
   "apps": {
      "http": {
         "servers": {
            "srv0": {
               "listen": [":2015"],
               "routes": [{
                  "handle": [{
                     "body": "Hello, world!",
                     "handler": "static_response"
                  }]
               }]
            }
         }
      }
   }
}
复制代码

Caddyfile基本语法

  • 下面案例将使用Caddyfile来进行配置,我们有必要了解下它的语法,Caddyfile的具体语法规则如下。

  • 介绍下上图中的关键字,有助于理解。
关键字解释使用
Global options block服务器全局配置可用于配置是否启用HTTPS和Admin API等
Snippet可以复用的配置片段定义好后认可以通过import关键字引用
Site Block单个网站配置通过file_server可以配置静态代理,通过reverse_proxy可以配置动态代理
Matcher definition匹配定义默认情况下指令会产生全局影响,通过它可以指定影响范围
Comment注释使用#符号开头
Site address网站地址默认使用HTTPS,如需开启HTTP,需要指定http://开头
Directive指令指令赋予了Caddy强大的功能


作者:MacroZheng
链接:https://juejin.cn/post/7085519712901136392
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值