Files
nexus/wiki/concepts/Caddy.md
2026-04-26 20:02:45 +08:00

3.1 KiB
Raw Blame History

title, type, tags, last_updated
title type tags last_updated
Caddy concept
networking
web-server
https
reverse-proxy
golang
2026-04-03

Aliases

  • Caddy Server
  • Caddy Web Server
  • Caddyfile

Definition

Caddy 是一款由 Go 语言编写的开源 Web 服务器,以其零配置自动 HTTPS 特性著称——首次访问域名时自动向 Let's Encrypt 申请并续期 SSL/TLS 证书无需手动配置。支持反向代理、静态文件服务、FastCGI、负载均衡等常用功能。Caddyfile 是其独特的配置格式,简洁易读,适合个人和小型部署。

Core Features

  • 自动 HTTPS:首次访问自动申请 Let's Encrypt 证书,支持 ACME DNS-01 挑战(适合内网)
  • HTTP/3 支持:默认启用 QUIC/HTTP3
  • 反向代理:简洁的 reverse_proxy 指令
  • Caddyfile:人类可读的配置文件格式
  • 默认 TLS 1.3:安全开箱即用
  • 热重载:配置修改自动生效,无需重启

Caddyfile 语法示例

# 基础反向代理
example.com {
    reverse_proxy localhost:8080
}

# 多域名配置
nas.ishenwei.online {
    reverse_proxy 127.0.0.1:15000
}

n8n.ishenwei.online {
    reverse_proxy 127.0.0.1:15678
}

# 带基础认证
admin.example.com {
    basicauth /* {
        admin <hashed_password>
    }
    reverse_proxy localhost:5678
}

常用命令

# 验证配置语法
sudo caddy validate --config /etc/caddy/Caddyfile

# 热重载配置
sudo caddy reload

# 彻底重启
sudo systemctl restart caddy

# 查看状态
sudo systemctl status caddy

# 生成密码哈希
caddy hash-password

与 Nginx 的对比

特性 Caddy Nginx
自动 HTTPS 默认 需手动配置
配置语法 简洁 Caddyfile 复杂块结构
性能 略低于 Nginx 极高
热重载 原生支持 需 signal
HTTP/3 默认 需额外编译
学习曲线 中高

在本 Wiki 中的应用

  • 通过VPS+内网反向代理实现域名访问内网穿透Caddy 反向代理到 frp 映射端口,提供 *.ishenwei.online HTTPS 访问
  • 映射关系:
    • nas.ishenwei.online127.0.0.1:15000
    • n8n.ishenwei.online127.0.0.1:15678
    • transmission.ishenwei.online127.0.0.1:19091
    • grafana.ishenwei.online127.0.0.1:13000
    • navidrome.ishenwei.online127.0.0.1:14533
    • calibre.ishenwei.online127.0.0.1:18083

重要限制

  • Caddy 不处理 SSHSSH 穿透TCP 映射)不走 Caddy只依赖 frps + frpc
  • Caddy 不处理 UDPUDP 流量(如 DNS需要其他方案
  • 反向代理Caddy 是反向代理的具体实现
  • 内网穿透Caddy 通常与 frp 配合Caddy 提供 HTTPSfrp 建立隧道
  • TCP隧道Caddy 处理 HTTP/HTTPS 层TCP 隧道Caddy 不参与)
  • RackNerdCaddy 部署的 VPS 提供商
  • VPS:运行 Caddy 的公网服务器

References