wencaizhang

Caddy 服务器使用指南

Published onJune 05, 2024
-Views
3Minutes Read

这篇文章写什么?

这篇文章写如何安装使用 Caddy 以及如何部署单页应用

对谁有用

对想要自己部署网站,特别是希望能使用 https 部署的人有用

前置条件

有一台电脑(服务器)

什么是 Caddy

官网地址: https://caddyserver.com/
Caddy 是使用 go 开发的高性能可拓展 web 服务器,它还有一个独特的功能就是自动 HTTPS.

如何安装

如何启动

这是在前台启动 caddy 服务。也就是说关闭终端,那么 Caddy 也随之关闭。
也可以手动按
+
来主动停止 Caddy 服务。
我们通常更希望启动 Caddy 并让它在后台运行,这时候你可以执行:
此时 Caddy 在后台运行, 这种情况按
+
无法停止 Caddy,停止 Caddy 服务有专用的命令:

配置文件

配置文件格式

Caddy 支持两种格式配置文件,一种是 JSON 格式,一种是叫做
(没有后缀) 的文件。
关于两种格式的对比,官方文档给出了一个表格,详情查看:JSON vs. Caddyfile
我的建议是大部分需求直接使用 Caddyfile 即可,优点是写起来更简单。
例如启动一个静态文件服务器

如何加载配置文件

Ubuntu 使用 apt 安装 Caddy 后默认配置文件是
,Mac 使用 brew 安装的默认配置文件是
但其实 Caddy 不限制配置文件的存放位置,不过执行命令时所处的路径和配置文件的路径的相对关系会影响启动命令的参数。
如果当前目录中存在名为
的文件:
无需指定配置文件,Caddy 会从当前目录查找并加载配置文件。
如果 Caddyfile 在其他地方,那么需要通过
指定文件路径:
如果配置文件没有用
来命名,需要指定
:
如果想要使用上次启动时加载的配置,有一个简单的写法:
如果想要在后台运行 Caddy,将上面命令中的
替换为
即可。

配置文件的格式

// todo

常见的使用场景

静态文件服务

如果目录下没有
作为索引文件,但是希望能把目录下的文件都列出来,需要增加
参数:
甚至还可以隐藏指定文件和目录:
更多细节参考文档:file_server

部署前端应用(反向代理)

实际上前端应用基本上和上面的静态文件服务一样,不过一般会多一个对接口的反向代理。

匹配到特定前缀后直接转发请求

这个配置的意思是遇到以
开头的请求,会直接转发

移除前缀

通常适用于部署 web 应用,需要对接口请求进行反向代理
上面的配置会将
开头的请求去掉前缀
后都转发到

替换一个路径前缀

上面的配置会将
开头的请求替换前缀
后都转发到

反向代理所有请求到本地后端

负载均衡

通过指定多个目标服务端口,就可以实现负载均衡。

HTTPS

Caddyfile 是第一个也是唯一一个默认自动启用 HTTPS 协议的 web 服务器。—— Automatic HTTPS — Caddy Documentation
默认情况下,Caddy 通过 HTTPS 为所有站点提供服务。而且 Caddy 保持所有管理证书更新,并自动将 HTTP(默认端口 80 )重定向到 HTTPS(默认端口 443 )。
因此,我们无需额外操作,就能享受 HTTPS 协议服务。

本文完,感谢阅读。
Tags:
#Caddy
#Nginx
#Proxy
#反向代理