[Caddy2] Caddyfile 概念预览

结构
块:
所有的指令必须在 { } 块中,如果只有一个站点,则块标记可以省略。
全局的配置块可以放在最上方,其次是站点的配置块。
指令:
指令是服务于站点配置的关键词。
关键词和引号:
空格在 Caddyfile 指令中很重要,如果希望带空格的字符为一个值,需要给它们加上引号。
directive abc def
directive "abc def"
directive "\"abc def\""
directive `"foo bar"`
地址
地址位于块的最上方。
有效的地址如下,
localhostexample.com:443http://example.comlocalhost:8080127.0.0.1[::1]:2015example.com/foo/**.example.comhttp://
如果您的站点地址包含主机名或IP地址,则启用自动HTTPS。
但是,此行为是纯隐式的,因此它永远不会覆盖任何显式配置。
例如,如果站点的地址为http://example.com,则不会激活自动HTTPS。
通过把地址写在一起可以匹配多个站点,地址必须是唯一的。
localhost:8080, example.com, www.example.com {
}
或者
localhost:8080,
example.com,
www.example.com
匹配器
请求匹配器用于对请求进行分类。
root * /var/www # matcher token: *
root /index.html /var/www # matcher token: /index.html
root @post /var/www # matcher token: @post
更多关于 Matcher。
占位符
左边的简记符等价于右边的。
{dir} |
{http.request.uri.path.dir} |
{file} |
{http.request.uri.path.file} |
{header.*} |
{http.request.header.*} |
{host} |
{http.request.host} |
{labels.*} |
{http.request.host.labels.*} |
{hostport} |
{http.request.hostport} |
{port} |
{http.request.port} |
{method} |
{http.request.method} |
{path} |
{http.request.uri.path} |
{path.*} |
{http.request.uri.path.*} |
{query} |
{http.request.uri.query} |
{query.*} |
{http.request.uri.query.*} |
{re.*.*} |
{http.regexp.*.*} |
{remote} |
{http.request.remote} |
{remote_host} |
{http.request.remote.host} |
{remote_port} |
{http.request.remote.port} |
{scheme} |
{http.request.scheme} |
{uri} |
{http.request.uri} |
{tls_cipher} |
{http.request.tls.cipher_suite} |
{tls_version} |
{http.request.tls.version} |
{tls_client_fingerprint} |
{http.request.tls.client.fingerprint} |
{tls_client_issuer} |
{http.request.tls.client.issuer} |
{tls_client_serial} |
{http.request.tls.client.serial} |
{tls_client_subject} |
{http.request.tls.client.subject} |
代码片段
代码片段是特殊的块,命名用扩展包起来。
(redirect) {
@http {
scheme http
}
redir @http https://{host}{uri}
}
然后,可以在其它地方引入使用。
import redirect
注释
注释使用 # 号,必须在行首或者行尾。
环境变量
如果配置依赖于环境变量,可以使用如下方式
{$SITE_ADDRESS}
在运行前会被解析为正确的值。
如果希望在运行时解析,你可以使用标准的 {env.*} 占位符。
全局选项
全局选项是没有 key 的块。
{
...
}
如果全局选项存在,它必须是配置中的第一个块。
它用于设置全局应用的选项,或不适用于特定的任何站点。在内部,只能设置全局选项。您不能在其中使用常规站点指令。
更多。
[Caddy] The Caddy Web Server 常见 Caddyfile 模式
Ref:https://caddyserver.com/docs/caddyfile/concepts
Link:https://www.cnblogs.com/farwish/p/13100103.html
[Caddy2] Caddyfile 概念预览的更多相关文章
- WPF的路由事件、冒泡事件、隧道事件(预览事件)
本文摘要: 1:什么是路由事件: 2:中断事件路由: 3:自定义路由事件: 4:为什么需要自定义路由事件: 5:什么是冒泡事件和预览事件(隧道事件): 1:什么是路由事件 WPF中的事件为路由事件,所 ...
- BookBlock - 效果非常真实的书本翻页预览
这个名为 BookBlock 的图片预览效果是一个书展示或网上书店的概念,已全屏打开3D页面导航网格的形式显示图书的详细信息.我们可以打开书预览的摘录,其中有一些细节的网格.对于图书预览,我们在使用 ...
- 【译】Visual Studio 15 预览版更新说明
序:恰逢Build2016大会召开,微软发布了VS2015的update2更新包和VS2016预览版.本人正在提升英文水平中,于是在这里对VS2016预览版的官方文档进行了部分翻译.因为VS有些功能使 ...
- 深入浅出Docker(一):Docker核心技术预览
Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种在安全.可 ...
- Windows 10简体中文最新预览版Build 9926
Windows 10 消费者预览版全新特性: • 全新的开始菜单Win 10的开始菜单产生了较大改变,磁贴界面在原有磁贴概念的基础上进行了大幅度的调整,新的磁贴界面开始支持纵向滚动,并可以利用开始按钮 ...
- javascript实现 京东淘宝等商城的商品图片大图预览功能
在京东和淘宝等购买东西的时候,我们会经常预览左侧商品展示图片,把鼠标放到原图,右侧就会有个大图显示出细节.本文将带领大家写一个这样简单的功能! 一.实现原理 当鼠标移入某一图片内部时,图片上部会出现一 ...
- (转)JDK 1.8 预览版Lambda语法分析
一.lambda含义 lambda表示数学符号“λ”,计算机领域中λ代表“λ演算”,表达了计算机中最基本的概念:“调用”和“置换”.在很多动态语言和C#中都有相应的lambda语法,这类语法都 ...
- JavaScript实现图片裁剪预览效果~(第一个小玩具)
感觉开始学习的前一个月真的太不珍惜慕课网的资源了 上面蛮多小玩意真的蛮适合我这样刚入门JavaScript的同学加深使用理解 大概收藏了百来门或大或小的课程 有一个感觉就是学这个真的比光是看书看概 ...
- 玩转Android Camera开发(四):预览界面四周暗中间亮,仅仅拍摄矩形区域图片(附完整源代码)
杂家前文曾写过一篇关于仅仅拍摄特定区域图片的demo.仅仅是比較简陋.在坐标的换算上不是非常严谨,并且没有完毕预览界面四周暗中间亮的效果,深以为憾.今天把这个补齐了. 在上代码之前首先交代下,这里面存 ...
- avalon1.3的新特性预览
avalon1.2的性能优化风暴很快就告一段落,入职也快一个月了,许多乱七八糟的事也少了下来,估计未来一个月会有许多好东呈现给大家. 首先是一个性能检测工具.由于MVVM是将原本由人脑干的事,转到各种 ...
随机推荐
- window10-yarn-使用vite创建vue3项目失败-文件夹或目录不正确
前置条件 window10 本地已经安装nodejs yarn已经通过npm全局安装(npm install -g yarn) 问题 yarn脚手架方式搭建vue3项目失败(command faile ...
- 你是怎么处理vue项目中的错误的?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.错误类型 任何一个框架,对于错误的处理都是一种必备的能力 在Vue 中,则是定义了一套对应的错误处理规则给到使用者,且在源代码级别,对 ...
- 记录--纯CSS实现骚气红丝带
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 在本文中,我们将探讨如何使用 CSS 以最少的代码创造出精美的 CSS 丝带形状,并最终实现下面这个效果: 下面我们使用html和css来 ...
- C# OpenCv 证件照换底色
using OpenCvSharp; using System; using System.Collections.Generic; using System.Linq; using System.T ...
- ET介绍——单线程异步
单线程异步 前面几个例子都是多线程实现的异步,但是异步显然不仅仅是多线程的.我们在之前的例子中使用了Sleep来实现时间的等待,每一个计时器都需要使用一个线程,会导致线程切换频繁,这个实现效率很低,平 ...
- #树状数组#洛谷 3531 [POI2012] LIT-Letters
题目 给出两个长度相同且由大写英文字母组成的字符串\(A\).\(B\),保证\(A\)和\(B\)中每种字母出现的次数相同. 现在每次可以交换\(A\)中相邻两个字符,求最少需要交换多少次可以使得\ ...
- #KD-Tree#洛谷 4849 寻找宝藏
题目传送门 题目大意 在一个四维坐标系中,给定 \(n\) 个点,问有多少种选择点的方案, 使得这些点排序后任意坐标单调不降,并且选择的点权和最大,同时输出最大值 分析 设 \(f[i]\) 表示最后 ...
- Jetty的http2模块
启用http2模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http2 命令的输出,如下: INFO : http2 initial ...
- 父组件明明使用了v-model,子组件竟然可以不用定义props和emit抛出事件,快来看看吧
前言 vue3.4增加了defineModel宏函数,在子组件内修改了defineModel的返回值,父组件上v-model绑定的变量就会被更新.大家都知道v-model是:modelValue和@u ...
- HDD成都站·暨HMS Core 6.0产品交流会报名开启
HUAWEI Developer Day(以下简称HDD)如期而至,将在9月10日和盟友们相聚成都,开启一场属于开发者的交流盛会.本次沙龙活动由上.下半场组成,诚挚地邀请各位开发者参加. 精彩预告 0 ...