这款
极致服务器
让您的网站比任何其他解决方案都更安全、更可靠和更具可扩展性

实时观看 Caddy 如何在不到 1 分钟的时间内提供 HTTPS 服务。
每个
网站都应启用
HTTPS

默认情况下,Caddy 会为您的所有站点自动获取续订 TLS 证书。

自定义域名的 HTTPS/TLS

几乎所有白标 SaaS 的秘诀都是 Caddy 原创的按需 TLS 功能。轻松扩展您的 SaaS 业务规模!

动态配置证书

通过按需 TLS,只有 Caddy 会在 TLS 握手期间动态地获取、续订和维护证书。非常适合客户拥有的域名。

大规模扩展您的 TLS

其他 Web 服务器和脚本化的证书工具在面对成千上万的站点或数千个实例时会崩溃。Caddy 旨在可靠地管理这种规模的证书。

由像您这样的用户赞助

Caddy 是免费软件,依赖赞助来维持生存。不仅仅是捐款:赞助确保持续开发,并为您的业务提供切实的利益。

查看赞助

世界上最先进的 HTTPS 服务器

您所需的 TLS 和 PKI 🔐

默认情况下,Caddy 使用 TLS 安全地服务所有站点。它还可以为您管理跨服务器和客户端群的内部 PKI。

在线配置 API ⚡️

Caddy 的原生配置是一个 JSON 文档,您可以使用 RESTful 配置 API 导出和操作它。

符合 PCI、HIPAA 和 NIST 标准 ✅

Caddy 的 TLS 默认设置是安全的,并且通过 PCI、HIPAA 和 NIST 合规性要求。是的,默认设置:无需任何麻烦。

localhost 的 HTTPS 🏠

我们说 Caddy 为每个站点提供 HTTPS 服务是认真的。即使是 localhost 和内部 IP 也使用 TLS 提供服务,TLS 使用完全自动化的、自我管理的 CA 的中间证书,该证书会自动安装到大多数本地信任存储中。

集群协调 🌐

只需配置具有相同存储的多个 Caddy 实例,它们将自动协调证书管理作为一个集群,并共享密钥和 OCSP 状态查询协议等资源!

更少的活动部件 ⚙️

简化您的基础设施!Caddy 可以节省资金,提高开发人员的工作效率,并减少生产中的问题。

体验一下

通过我们的托管演示发现 Caddy 的自动 HTTPS 功能。

将任何名为 caddydemo 的子域的 DNS 记录指向以下任一地址

CNAME demo.caddyserver.com

A 138.68.4.62 AAAA 2604:a880:2:d0::9dd:9001

然后在您的浏览器中访问它

您会注意到 Caddy 如何自动为您的域名配置证书

无法工作? 确保使用已注册域名的直接子域名,而不是“子子域名”。验证您是否已使用正确的值创建了上面显示的公共 DNS 记录。您可能需要等待传播时间。请查阅您的 DNS 提供商的文档或支持以获得帮助。您的浏览器/客户端必须设置 TLS 服务器名称指示(大多数都设置了)。

可以工作的子域名示例: caddydemo.example.netcaddydemo.example.com.au

Caddy 能够为任何域名和 IP 提供 TLS 服务。此演示有意限制了范围。

使用 Caddy 部署您自己的 PKI

Caddy 不仅是证书自动化领域的行业领导者,它还拥有一套功能齐全的 PKI 套件,用于您自己的完全自动化的内部 PKI 和私有 CA。

Caddy 由开源的 Smallstep 库提供支持,成为一个自我管理的证书颁发机构。

localhost {
	respond "Hello from HTTPS!"
}

192.168.1.10 {
	respond "Also HTTPS!"
}

http://localhost {
	respond "Plain HTTP"
}

内部和 localhost 证书

如果您配置了具有本地或内部地址的站点,Caddy 将使用本地信任的证书颁发机构,通过 HTTPS 为它们提供服务,并使用短期的、自动续订的证书。它甚至可以为您将您唯一的根证书安装到您的本地信任存储中。

Smallstep

制作和使用您自己的 CA

Caddy 允许您根据需要定义任意数量的 CA。根密钥和中间密钥会自动生成,并且中间密钥会在过期前续订。

部署一个实例以充当 ACME 服务器。然后,其他 Caddy 实例可以使用它来获取证书。

{
	pki {
		ca corporate {
			name "Our Corporation Authority"
		}
	}
}

internal.example.com {
	# ACME endpoint: /acme/corporate/directory
	acme_server {
		ca corporate
	}
}
{
  "apps": {
    "tls": {
      "certificates": {
        "automate": [
          "example.com",
          "sub.example.com",
          "example.net"
        ]
      }
    }
  }
}

保持证书续订

Caddy 不仅仅是一个 Web 服务器。例如,此配置只需要获取和续订一组域名的证书。

可以编写额外的配置来连接证书维护事件,然后可以使用这些事件与外部脚本和工具集成。

专家推荐

学术界和行业专家推荐 Caddy,Caddy 因其安全默认设置、最佳实践和独特的先进功能集而在同行评审期刊中被引用。

“运行 Caddy 的服务器几乎普遍部署了 HTTPS 并使用现代 TLS 配置。……我们希望看到其他流行的服务器软件效仿 Caddy 的领导。”

Josh Aas、Richard Barnes、Benton Case、Zakir Durumeric、Peter Eckersley、Alan Flores-López、J. Alex Halderman、Jacob Hoffman-Andrews、James Kasten、Eric Rescorla、Seth Schoen 和 Brad Warren。 2019. Let's Encrypt:一个用于加密整个 Web 的自动化证书颁发机构。 收录于 2019 年 ACM SIGSAC 计算机和通信安全会议论文集 (CCS '19)。美国纽约州纽约:计算机协会,2473–2487。https://doi.org/10.1145/3319535.3363192

“必须默认启用 TLS……Caddy Web 服务器就是一个良好且可用的示例。”

Katharina Krombholz、Wilfried Mayer、Martin Schmiedecker 和 Edgar Weippl。 2017. “我不知道自己在做什么”——关于部署 HTTPS 的可用性。 收录于第 26 届 USENIX 安全研讨会 (USENIX Security 17),加拿大温哥华,USENIX 协会,1339-1356。检索自 https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/krombholz

“除了 Caddy 之外,没有流行的服务器软件执行 [会话票证密钥轮换]。”

Drew Springall、Zakir Durumeric 和 J. Alex Halderman。 2016. 衡量 TLS 加密快捷方式的安全危害。 收录于 2016 年互联网测量会议论文集 (IMC '16),美国加利福尼亚州圣莫尼卡:计算机协会,33-47。https://doi.org/10.1145/2987443.2987480

具有前瞻性的反向代理

Caddy 的代理旨在尽可能向前兼容,并包含主要功能:负载均衡、主动和被动健康检查、动态上游、重试、可插拔传输,当然还有一流的 TLS 安全性。

代理 HTTP、FastCGI、WebSocket 等

能够代理 HTTP 和 HTTPS,以及 WebSocket、gRPC、FastCGI(通常是 PHP)等!底层传输模块可扩展,适用于任何生成 HTTP 响应的自定义方式。

动态后端

为 Caddy 提供后端静态列表,或启用模块以在每次请求期间动态检索后端:非常适合快速变化的环境。Caddy 与您的基础设施流畅地协同工作!

高可用性

Caddy 配备了一整套高可用性 (HA) 功能:高级健康检查、优雅(无损)配置更改、熔断、负载限制、在线重试等。最棒的是什么?这一切都是免费的。没有企业级付费墙。

example.com

# Serve PHP sites
handle /blog/* {
	root * /var/www/wordpress
	php_fastcgi localhost:9000
	file_server
}

# Proxy an autoscaling API with dynamic backends
reverse_proxy /api/* {
	dynamic srv _api._tcp.example.com
}

# Proxy a compute-heavy distributed service
# with load balancing and health checks
reverse_proxy /service/* {
	to              10.0.1.1:80 10.0.1.2:80 10.0.1.3:80
	lb_policy       least_conn
	lb_try_duration 10s
	fail_duration   5s
}

# Proxy everything else to an HTTPS upstream
reverse_proxy https://service.example.com {
	header_up Host {upstream_hostport}
}

软件保障

没有赞助,Caddy 随时可能停止开发。有了赞助,您就可以安心,因为知道该项目将继续开发,同时获得私人支持和培训等实际利益。

查看赞助

生产级静态文件服务器

提供静态文件是一种经过验证的、有效向大量客户端交付站点的方法。Caddy 具有强大的文件服务器,可以与其他中间件功能结合使用,从而打造极致轻松的网站。

压缩

Caddy 可以即时压缩文件,也可以提供预压缩文件以获得额外的性能。Caddy 也是第一个支持 Zstandard 编码的 Web 服务器。

虚拟文件系统

从任何位置提供您的静态站点:本地文件系统、远程云存储、数据库,甚至嵌入到服务器二进制文件中!

范围请求、Etag 等

与许多旨在用于临时本地开发的临时文件服务器不同,Caddy 完全支持范围请求、Etag 和全套生产功能。

目录文件浏览器

如果请求的目录中没有索引文件,Caddy 可以显示一个优雅的文件浏览器,其中包含面包屑导航、文件大小可视化、文件类型图标和网格视图。

example.com

root * /var/www

# Serve precompressed files if present
file_server /downloads/* {
	precompressed
}

# Compress everything else that would benefit
encode zstd gzip

# Static site using database as file system
file_server /database/* {
	fs sqlite data.sql 
}

# Static site embedded within the Caddy binary
file_server /embedded/* {
	fs embedded
}

# (Range/Etag/etc. all work without extra config)

# Serve static site with directory listings
file_server browse

灵活的配置,兼容任何工作流程

以您的方式配置您的服务器。Caddy 的原生配置文件格式为 JSON,借助 Caddy 的配置适配器,您可以使用您喜欢的任何配置文件格式。所有配置都通过 RESTful 管理 API 发布,Caddy 的 CLI 可帮助您轻松处理配置文件。

$ caddy start --config caddy.json $ curl localhost:2019/id/my_handler \ -X PATCH \ -H "Content-Type: application/json" \ -d '{ "handler": "static_response", "body": "Work smarter, not harder." }' $ curl localhost:2019/config/ | jq

JSON 配置 API

Caddy 的原生配置文件格式为 JSON,为您提供强大的功能和灵活性,适用于自动化、大规模部署。

通过 直观、可编程的 REST API 进行动态配置更改,该 API 提供 ACID 保证。它也是安全作用域的,这意味着 URI 路径限制了更改,从而不可能意外地更改配置的其他部分。

Caddyfile

虽然 JSON 提供了极致的控制,但大多数人更喜欢使用 Caddyfile,因为它使您只需手写几行代码即可启动并运行生产就绪的站点。Caddyfile 的大小通常仅为功能较弱的 Nginx 配置文件的 ~15-25%

caddyserver.com

root * src

file_server
templates # markdown & syntax highlighting!
encode zstd gzip

redir   /docs/json   /docs/json/
rewrite /docs/json/* /docs/json/index.html
rewrite /docs/*      /docs/index.html

reverse_proxy /api/* localhost:9002
本站点使用的实际配置。
$ caddy run \ --config nginx.conf \ --adapter nginx

配置适配器

使用任何配置驱动 Caddy,甚至是 NGINX 配置文件!

通过对配置适配的一流支持,您可以使用您喜欢的格式配置您的 Web 服务器:YAML、TOML、CUE、NGINX、HCL、Dhall、带注释的 JSON,甚至 MySQL 数据库……或任何其他格式。Caddyfile 是一个内置的配置适配器。

无与伦比的可扩展性

Caddy 是世界上唯一一款采用新型模块化架构的服务器。Caddy 的核心是一个配置管理器,它运行 HTTP 服务器、内部证书颁发机构、TLS 证书管理器、进程监视器等应用程序。

由于其独特的设计,我们可以提供无限的功能,而不会使代码库臃肿。仅编译您需要的功能。

无限的 power

几乎所有“执行某些操作”的配置部分都是可插拔的。Caddy 以如此精简的软件包提供了无限的功能。

原生 CPU 性能

没有 RPC 调用或脆弱的依赖项管理。插件被编译到静态二进制文件中,从而确保成功部署和闪电般快速的运行时。

易于开发

编写 Caddy 插件就像编写 Go 包一样容易。对于任何 Go 程序员来说,这都是一个舒适而熟悉的过程。

PHP 应用速度提升 4 倍

借助 FrankenPHP,Caddy 充当 PHP 应用程序服务器,其交付 PHP 页面的速度比 Swoole 或 RoadRunner 快约 4 倍:无需 php-fpm (FastCGI)。

将您的 PHP 应用程序部署为单个静态二进制文件,而无需单独安装 PHP 和 php-fpm。Caddy 与 FrankenPHP 是您高性能 PHP 应用程序所需的全部!

基准测试比较了使用 Octane 的 worker 模式的总响应时间。FrankenPHP 与服务器进程内运行,因此在大多数情况下,它通常比 FPM/mod_php 更快。PHP 执行未加速。

{
	# Enable FrankenPHP
	frankenphp
}

example.com {
	# Serve PHP app from current directory
	php_server
}

提供 PHP 应用程序就像这个 Caddyfile 一样简单。PHP 解释器完全嵌入在 Caddy 二进制文件中,您的应用程序文件将从当前工作目录提供。无需 php-fpm 或单独安装 PHP!

了解更多

黄金标准 Web 服务器

Caddy 拥有市场上最强大的 TLS 堆栈。与 OpenSSL(Apache 和 Nginx)相比,Caddy 具有更强的内存安全保证,并且比任何其他服务器或实用程序都具有更先进的证书自动化逻辑,Caddy 可以在其他服务器……无法解决问题时,保持您的站点在线。

Caddy 是第一个完全自动化公共证书管理的服务器——因此我们在这方面的时间比任何人都长。Caddy 管理着超过 5000 万个证书,为其他服务器树立了黄金标准。

OCSP 状态查询协议封套拯救世界

Caddy 自动封套 OCSP 响应并缓存它们以应对中断。2018 年,由于关键的 OCSP 基础设施发生长时间中断,许多主流浏览器的流行网站都宕机了。只有 Caddy 默认封套和缓存 OCSP 响应,因此所有 Caddy 站点都未受影响。

防范吊销

2020 年,大规模证书吊销事件导致许多系统管理员争先恐后地提前续订证书。Caddy 会自动续订被吊销的证书,所有 Caddy 站点都未受影响。(这在 ARI 存在之前就发生了。)

在审核期间屹立不倒

由于 Caddy 的安全默认设置和“内置所有功能”的方法,公司在重要审核前几个小时在站点前部署了 Caddy,这有可能挽救他们的合规性状态。

听取大家的意见

我们可能有偏见。但 Caddy 因其易用性、安全默认设置、强大的功能集以及改变业务的成本降低而受到全球不同用户群体的广泛依赖和赞誉。