Caddy Server使用进阶

简介: Caddy Server使用进阶

前言


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


Caddy 支持将 Nginx 配置转为 Caddyfile。


呆猫


反向代理

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


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


关键点是用户未知。


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


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


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


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


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


访问 8000 端口试试


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


正常的,应该打开我们的首页,但是通过 Caddy 的反向代理,我们实际看到的是 Python 的 http.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 中的即可。


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


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

相关文章
|
数据库 UED Python
1、基于python多进程+pyqt5开发流畅界面程序
使用python+pyqt5开发界面程序,利用多进程分离界面和任务执行功能,达到界面流畅不卡顿的要求。 本文程序示例:https://github.com/AlvinsFish/UiExample
3100 0
1、基于python多进程+pyqt5开发流畅界面程序
|
XML JSON 安全
OAuth vs SAML vs OpenID:了解它们之间的差异
身份验证允许进入系统,而授权允许访问同一系统内的特定功能。安全断言标记语言 (SAML) 是一种开放标准,它试图弥合身份验证和授权之间的鸿沟。
|
人工智能 搜索推荐 算法
爱思唯尔的KBS——模板、投稿、返修、接收的总结
爱思唯尔的KBS——模板、投稿、返修、接收的总结
6819 3
|
Web App开发 对象存储
解决:x509: cannot validate certificate for IP 报错
问题 今天调用上传接口上传文件时,遇到了一个 x509 类型报错,具体报错信息如下: 2021-10-15 17:46:13.145 ERROR oss/upload.go:210 upload process Failed {"error": "Post "https://192.168.215.139:9443/store/file/upload\": x509: cannot validate certificate for 192.168.215.139 because it doesn't contain any IP SANs"} panic: send on closed cha
2225 0
|
Java Maven Windows
java 获取视频第一帧 | Java工具类
java 获取视频第一帧 | Java工具类
java 获取视频第一帧 | Java工具类
|
7月前
|
人工智能 监控 安全
新手零代码上手|阿里云极速部署OpenClaw+ Skills集成保姆级教程(含避坑指南)
在2026年AI自动化浪潮中,OpenClaw(原Clawdbot,曾用名Moltbot)凭借开源特性、灵活的Skills扩展生态,成为个人与轻量团队提升效率的核心工具。这款由奥地利开发者主导的开源项目,截至2026年2月,在GitHub平台星标数量已突破18.6万,Fork数超过3.2万,成为年度增长最快的开源AI智能体项目之一。OpenClaw的核心价值的是“指令落地执行”,而Skills作为其能力扩展模块,相当于智能体的“应用软件”,决定了它能完成的自动化任务范围——从基础的文件管理、文本处理,到复杂的网页抓取、定时任务,都需要通过集成对应Skills实现。
1045 1
|
10月前
Excel工具-HUTOOL-读取Excel
Hutool提供ExcelReader封装,支持读取Excel为Map、Bean或列表。针对大文件,提供Excel03SaxReader和Excel07SaxReader,基于SAX模式避免内存溢出,支持按行处理数据,适用于大数据量的高效读取。
|
10月前
|
Apache
Excel工具-HUTOOL-读取Excel
基于Hutool和Apache POI,封装Excel读取工具,支持读取为List、Map或Bean;提供SAX模式高效解析大文件,避免内存溢出,适用于Excel 2003/2007格式,支持按行处理数据。
449 0
|
存储 机器学习/深度学习 搜索推荐
深入解析矢量数据库的数据模型与索引机制
【4月更文挑战第30天】本文深入探讨了矢量数据库的数据模型和索引机制。向量数据库以高维向量表示数据,采用稀疏或密集向量形式,并通过数据编码和组织优化存储与检索。索引机制包括基于树的(如KD-Tree和Ball Tree)、基于哈希的(LSH)和近似方法(PQ),加速相似性搜索。理解这些原理有助于利用矢量数据库处理大规模高维数据,应用于推荐系统、图像搜索等领域。随着技术发展,矢量数据库将扮演更重要角色。
|
存储 人工智能 运维
面向AI的服务器计算软硬件架构实践和创新
阿里云在新一代通用计算服务器设计中,针对处理器核心数迅速增长(2024年超100核)、超多核心带来的业务和硬件挑战、网络IO与CPU性能增速不匹配、服务器物理机型复杂等问题,推出了磐久F系列通用计算服务器。该系列服务器采用单路设计减少爆炸半径,优化散热支持600瓦TDP,并实现CIPU节点比例灵活配比及部件模块化可插拔设计,提升运维效率和客户响应速度。此外,还介绍了面向AI的服务器架构挑战与软硬件结合创新,包括内存墙问题、板级工程能力挑战以及AI Infra 2.0服务器的开放架构特点。最后,探讨了大模型高效推理中的显存优化和量化压缩技术,旨在降低部署成本并提高系统效率。

热门文章

最新文章