caddyfile 介绍

概述

caddy 是一个 nginx 的替代品,用法很简单,作为静态文件服务器用起来很方便,这里介绍一下 ta的配置文件 caddyfile

结构

image.png

上面是官网介绍图,https://caddyserver.com/docs/caddyfile/concepts#structure

整体结构是:

  • 最外层的 {} 是全局配置
  • xxx {} 是某一个端口或者某一个域名的配置

样例

这里分享一下我的服务器上的配置

{
    debug
    log {
        output file /root/logs/caddy.log {
            roll_size 100mb
            roll_keep 5
        }
    }
}

http://sheep.xxxxxxx.ltd {
    root * /root/yang2-local/
    
    header {
        Access-Control-Allow-Origin "{http.request.header.Origin}"
        Access-Control-Allow-Credentials true
        Access-Control-Allow-Methods *
        Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization
    }
    
    encode  gzip
    #tls /opt/certs/sheep.xxxxxxx.ltd-2022.pem /opt/certs/sheep.xxxxxxx.ltd-2022.key
    
    file_server 
    log {
        output file /root/logs/yang-local.log {
            roll_size 100mb
            roll_keep 5
        }
    }
}

www.xxxxxxx.ltd {
    root * /opt/fe/
    encode zstd gzip
    tls /opt/certs/xxxxxxx.ltd-2022.pem /opt/certs/xxxxxxx.ltd-2022.key
    file_server
    reverse_proxy /api/* localhost:8080 
    log {
        output file /root/logs/admin-be.log {
                roll_size 100mb
                roll_keep 5
        }
    }
}

daohang.xxxxxxx.ltd {
    root * /opt/daohang/
    encode  gzip
    tls /opt/certs/daohang.xxxxxxx.ltd-2022.pem /opt/certs/daohang.xxxxxxx.ltd-2022.key
    file_server 
}

cancan.xxxxxxx.ltd {
    root * /opt/cancan/
    encode  gzip
    tls /opt/certs/cancan.xxxxxxx.ltd-2022.pem /opt/certs/cancan.xxxxxxx.ltd-2022.key
    file_server
    reverse_proxy /api/* localhost:8080 
}


text-2-pic.xxxxxxx.ltd {
    root * /opt/text-2-pic/
    encode  gzip
    tls /opt/certs/text-2-pic.xxxxxxx.ltd-2022.pem /opt/certs/text-2-pic.xxxxxxx.ltd-2022.key
    file_server 
}

watermelon.xxxxxxx.ltd {
    root * /opt/watermelon/
    encode  gzip
    tls /opt/certs/watermelon.xxxxxxx.ltd-2022.pem /opt/certs/watermelon.xxxxxxx.ltd-2022.key
    file_server
}

介绍

全局配置

  • debug 开启debug日志
  • log 打印日志,其余参数没啥好说的,看单词就知道啥意思

静态文件服务器

  • 配置以域名开头,那么 caddy 就会通过请求Header 的host字段来做响应的动作

  • 配置是端口,那么 caddy 会自动开启一个端口,并且应用配置

  • root 这一行是指定静态文件路径,配合 file_server 一起使用

  • encode 压缩编码,开启可以节省服务器带宽

  • tls 证书路径,分别是公钥、私钥

反向代理

  • reverse_proxy 第一个参数是请求path,第二个参数是把匹配的请求转发到哪里

端口形式

:8099 {
  xxxx
}

域名形式

a.com {
  xxx
}

caddy 默认会开启 80、443 端口

下载

https://caddyserver.com/download

这个是官网下载地址, caddy 有很多插件,不是所有的插件都在 release 里面,这个页面可以自行选择插件,网站会动态编译、下载

如果不需要额外的插件,那么直接下载就行

使用

  • 启动
    ./caddy start
  • 重新加载配置文件Caddyfile
    ./caddy reload
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容