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 中的即可。


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


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

相关文章
|
2月前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
312 1
|
3月前
|
缓存 负载均衡 应用服务中间件
Nginx入门 -- 理解Nginx基础概念:连接(Connection)
Nginx入门 -- 理解Nginx基础概念:连接(Connection)
108 0
|
网络协议 应用服务中间件 nginx
Nginx配置server_name讲解
Nginx配置server_name讲解
1277 0
|
监控 网络协议 应用服务中间件
nginx--虚拟主机 server、状态模式
nginx--虚拟主机 server、状态模式
|
SQL 安全 关系型数据库
Azkaban--安装部署--two server 模式安装--服务器配置上 | 学习笔记
快速学习 Azkaban--安装部署--two server 模式安装--服务器配置上
183 0
Azkaban--安装部署--two server 模式安装--服务器配置上  | 学习笔记
|
分布式计算 关系型数据库 MySQL
Azkaban--安装部署--two server 模式安装--服务器配置下 | 学习笔记
快速学习 Azkaban--安装部署--two server 模式安装--服务器配置下
145 0
Azkaban--安装部署--two server 模式安装--服务器配置下 | 学习笔记
|
存储
通过echo_server带你入门brpc!
前文我们介绍过如何编译安装brpc(brpc最新安装上手指南),今天通过echo_server来介绍一下brpc的基本使用方法与细节。
891 0
|
Web App开发 网络协议 网络安全
Debian 9 安装配置 Caddy Server
Caddy 是一个用 Golang 开发的高效 Web Server,相比 Nginx,它的配置和使用要简单很多,能自动开启 HTTPS、并且支持 HTTP/2 和 QUIC。 下载安装 Caddy 首先去 Download Caddy 选择你需要的插件,然后复制下方的 One-step ins.
3951 0
visualSVN-server的使用方法
本文章主要针对visualSVN-server的使用方法打开visualSVN-server后,画面是这个样子的然后我们要创建一个服务器,用来装项目,如图:这个text就是服务器的后缀名 这个是设置权限:Nobody has access意思是:不让任何人访问All就是所有人都可以最下面那个是自定.
2870 0
|
监控 应用服务中间件 PHP

热门文章

最新文章