Caddy Server使用进阶

简介: Caddy Server使用进阶

前言


前面我们介绍了 Caddy 的入门用法,今天我们来介绍下 Caddy 的进阶用法,主要围绕 Caddyfile 来介绍反向代理,重定向,请求匹配等功能。


Caddy 支持将 Nginx 配置转为 Caddyfile


呆猫


反向代理

反向代理是什么?小穷子带着存折去找小柜子取钱,小柜子太忙就把卡给小箱子,让小箱子帮他处理。


网络异常,图片无法展示
|


关键点是用户未知。


正向代理是什么?小黄的儿子小紫要上学了,但是学校给报名,所以小黄去找教育局局长小绿让小绿带着小紫去学校报名。


网络异常,图片无法展示
|


关键点是用户已知,主观配置。


例子:假设我们想要搭建一个 Caddy 服务,通过访问这个服务可以反向代理到 PythonApp


localhost:8000
file_server
templates {
    mime .md text/html
}
reverse_proxy 127.0.0.1:9000
复制代码


访问 8000 端口试试


网络异常,图片无法展示
|


正常的,应该打开我们的首页,但是通过 Caddy 的反向代理,我们实际看到的是 Pythonhttp.server


如果你想通过 Caddy 去代理跨域的服务,在目的服务中将 Caddy 服务器加入白名单也是可以实现的。


重定向



重定向和反向代理的区别是,重定向是 Caddy 向浏览器发出重定向指定,实际客户端访问的是被重定向的服务器。而反向代理是 Caddy 帮主动将客户端的请求在内部进行处理,客户端不感知。


redir http://localhost:9000
复制代码


网络异常,图片无法展示
|


内部重写


假设我们想要在 Caddy 服务器内部进行请求重写,我们可以这样做。


rewrite /rewrite /
复制代码


网络异常,图片无法展示
|


请求匹配器


实际在上面的内部重写例子中我们已经看到了请求匹配器的存在,其可以应用于 Caddy 的关于请求处理的所有地方,而且支持路径,命名等各中属性的匹配方式。

如内部重写例子,实际上 Caddy 托管的站点没有/rewrite 这个接口,但是我们通过请求匹配器可以拦截这个 URI,并且将其重写到/,这在请求拦截,请求处理,地址重写,重定向中有广泛的使用。


日志配置


当我们想要收集 Caddy 的日志时,我们可以向 Caddyfle 中加入以下配置即可。


log {
  output file log/access.log {
    roll_size 1gb
    roll_keep 5
    roll_keep_for 720h
  }
}
复制代码


注意:Caddy 并不会自动创建目录和文件,需要我们自己创建。


网络异常,图片无法展示
|


认证配置


当我们想要为我们的站点增加认证时,我们可以在 Caddyfile 中增加如下配置。


basicauth /* {
  phyger <hash-password>
}
复制代码


以上,其中的是散列密码的 base64 编码。我们怎么获取散列密码的 base64 编码呢?最简单就是用 Caddy 客户端生成(亲测只有这种办法可行)。


网络异常,图片无法展示
|


将如上截图中的代码替换掉 Caddyfile 中的即可。


网络异常,图片无法展示
|


此时,我们输入账号密码即可进入我们的站点。

相关文章
【推荐】排序模型的评价指标nDCG
nDCG(Normalized Discounted Cumulative Gain)归一化折损累计增益是一种用于评估排序模型性能的指标,它考虑了两个方面:排序的正确性和相关性的程度。
4905 0
|
jenkins 持续交付
Jenkins 管理界面里提示“反向代理设置有误“的问题解决办法
Jenkins 管理界面里提示“反向代理设置有误“的问题解决办法
2239 0
Jenkins 管理界面里提示“反向代理设置有误“的问题解决办法
|
网络协议 定位技术 网络安全
IPIP.NET-IP地理位置数据
IPIP.NET 是一家专注于 IP 地理位置数据的提供商,基于 BGP/ASN 数据与全球 800+ 网络监测点技术,提供高精度的 IPv4 和 IPv6 定位服务。其核心服务包括地理位置查询、详细地理信息和网络工具等,广泛应用于网络安全、广告营销、CDN 优化等领域。数据覆盖全球,支持多语言,每日更新确保实时性。IPIP.NET 提供 API 接口、离线数据库及多种语言 SDK,方便开发者集成使用。
2825 0
|
人工智能 自然语言处理 关系型数据库
不写一行代码,用MCP+魔搭API-Inference 搭建一个本地数据助手! 附所有工具和清单
还在为大模型开发的复杂技术栈、框架不兼容和工具调用问题头疼吗?MCP(Model Context Protocol servers)来拯救你了!它用统一的技术栈、兼容主流框架和简化工具调用的方式,让大模型开发变得简单高效。
2584 1
|
JavaScript
【Mac用户必看】Autodesk EAGLE PCB设计全攻略:从安装到制造,解锁Mac上高效电子设计新纪元!
【8月更文挑战第2天】【PCB设计】Mac系统Autodesk EAGLE PCB使用入门教程
1497 11
|
SQL 存储
如何在 SQL Server 中使用 `OUTPUT` 子句
【8月更文挑战第10天】
777 7
如何在 SQL Server 中使用 `OUTPUT` 子句
|
人工智能 安全 前端开发
免费高效!3步实现Llama3模型远程访问与协作
Meta发布了全新的开源大语言模型Llama 3,LM Studio是一款免费的桌面端工具,支持一键安装和运行Llama 3模型,实现本地使用。LM Studio还提供了Local Server功能,便于集成AI功能。通过贝锐花生壳,可轻松实现LM Studio接口的远程访问,无需公网IP或端口映射。
1393 1
|
弹性计算 负载均衡 网络架构
搞懂链路负载及入口带宽和出口带宽
搞懂链路负载及入口带宽和出口带宽
895 7
|
JavaScript 前端开发
JS - 正则替换富文本内容的所有图片地址,并提取src、alt、style等属性
这篇文章提供了使用JavaScript正则表达式来替换富文本中所有图片地址,并提取`src`、`alt`、`style`等属性的示例代码和方法。
1077 1
|
存储 JSON 网络协议
「译文」使用 Caddy 来自动化 HTTPS
「译文」使用 Caddy 来自动化 HTTPS

热门文章

最新文章