[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是将原本由人脑干的事,转到各种 ...
随机推荐
- 为什么数字化未来取决于3D实时渲染
什么是实时3D? 如果你曾经看过2D图纸并将3D产品可视化,你就会知道这是多么具有挑战性.实时3D允许观众观看3D图像或场景并与之交互,例如在视频游戏中,这些图像或场景看起来是实时移动的. 实时3D成 ...
- 记录--vue3函数式弹窗
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 最近接到一个需求,需要在一些敏感操作进行前要求输入账号和密码,然后将输入的账号和密码加到接口请求的header里面.如果每个页面都去 ...
- Java封装xml格式参数请求第三方接口
Java封装xml格式参数请求第三方接口 1.引用包 import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers ...
- 【已解决】mysql8.0安装报错 error: Found option without preceding group in config file:
D:\Program Files (x86)\mysql-8.0.13-winx64\mysql-8.0.13-winx64 在此路径下找到my.ini(在个人安装的路径下) 另存为ANSI编码:
- 安卓开发数据可视化---导入数据到excel表格
现在是2021-03-12 00::39 刚刚完成了一个小软件部分功能,现在把出现的问题总结如下: 一.首先要下载jar包 网址:https://mvnrepository.com/artifact/ ...
- #模型转换#洛谷 6075 [JSOI2015]子集选取
题目 分析 \(n\)个元素可以独立操作,考虑单个元素, 则选不选择一定有一道分界线, 而这条分界线正好要走\(k\)次, 每次可以选择向上走或向右走,所以为\(2^k\), 由于\(n\)个元素相互 ...
- GitHub互赞快速涨星,最简单的涨星方法
各位代码们,是不是厌倦了在GitHub上孤独地刷着自己的项目页面,眼巴巴地等待那星星数的涨幅?今天给大家安利一个超级实用的新玩意儿--涨星互助平台,一个让你的GitHub项目星星数飞起来的秘密基地! ...
- AJAX 前端开发利器:实现网页动态更新的核心技术
AJAX AJAX是开发者的梦想,因为你可以: 在不重新加载页面的情况下更新网页 在页面加载后请求来自服务器的数据 在页面加载后接收来自服务器的数据 在后台向服务器发送数据 HTML页面 <!D ...
- HarmonyOS语言基础类库开发指南上线啦!
语言基础类库提供哪些功能?多线程并发如何实现?TaskPool(任务池)和Worker在实现和使用场景上有何不同? 针对开发者关注的并发等语言基础类库的相关能力,我们在新推出的语言基础类库开发指南 ...
- Python3中pip3命令的用法介绍及安装配置
第一节:pip3是什么?有啥用? pip3:(Python3 Install Package ),这个英文全称是我为了更好的理解这个命令这么叫的,官方没有这对个命令的全称的解释:) python 支持 ...