编程 Caddy 入门:Caddyfile 结构与 file-server 静态站点示例

2026-09-05 00:16:31

Caddy 入门:Caddyfile 结构与 file-server 静态站点示例

Caddy 是一个基于 Go 语言的开源 Web 服务器与反向代理工具,默认提供自动 HTTPS,配置方式简洁,也常被用来快速托管静态文件。

功能特性

  • 自动 HTTPS:默认启用 HTTPS,自动完成 TLS 证书的申请与续期;HTTP 请求会自动重定向到 HTTPS,并内置 HSTS 响应头。
  • 极简配置:支持声明式 Caddyfile,也支持 JSON 配置,可通过 API 实时更新和导出配置。
  • 反向代理:覆盖 HTTP、FastCGI、WebSockets 场景;支持负载均衡、主动/被动健康检查、动态上游与重试。
  • 静态资源托管:作为静态文件服务器,支持文件压缩、虚拟文件系统、范围请求与目录浏览。
  • 可扩展性:模块化设计,核心只做配置管理,HTTP 服务、TLS 等由插件提供;开发者可以编写自己的插件。
  • 跨平台性:支持 Linux、Windows、macOS,也可通过 Docker 部署。
  • 高效性能:Go 语言实现,内存安全且有较好性能。通过 FrankenPHP 可在不安装 php-fpm(FastCGI)的情况下将 PHP 应用速度提高 4 倍。

Caddyfile 最小结构

Caddyfile 是 Caddy 最常使用的配置文件,默认放在启动目录下,名称固定为 Caddyfile。其基本单元是“站点块”,结构形如:

:8080 {
    root * .
    file_server
}

这个配置表示监听 8080 端口,把当前目录作为静态文件根目录。使用 caddy run 启动后,访问 http://127.0.0.1:8080/ 即可看到站点内容。若只想临时托管某个目录,不写 Caddyfile 也可以,用 caddy file-server 更直接,下面看在 Windows 下怎么跑。

下载安装与快速示例

官方下载页面:

caddyserver.com/download

下载对应操作系统的安装文件并安装;Caddy 也提供 Docker 镜像。

在某个目录下创建一个 index.html

欢迎使用Caddy!

在该目录执行:

install_path\caddy file-server

file-server 子命令让 Caddy 以静态文件服务器模式运行。把 install_path 换成实际的 Caddy 安装目录后,在浏览器中访问 http://127.0.0.1/ 即可查看页面内容。生产环境里的实际配置,以官方文档为准:

Caddy quick-starts 文档

复制全文 生成海报 Caddy Web服务器 反向代理 运维

推荐文章

程序员茄子在线接单