终极
服务器
让您的网站比其他任何解决方案都更加安全可靠可扩展

实时观看Caddy在不到1分钟内提供HTTPS服务。
每个
网站都
使用HTTPS

默认情况下,Caddy 自动获取续期所有网站的TLS证书。

自定义域名的HTTPS/TLS支持

Caddy独创的按需TLS功能几乎是每个白标SaaS的秘密武器。轻松将您的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合规要求。是的,默认设置:无需额外配置。

本地主机的HTTPS支持 🏠

当我们说Caddy为每个站点提供HTTPS服务时,我们是认真的。即使是localhost和内部IP也使用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 ServerName指示(大多数都支持)。

可能有效的子域名示例: caddydemo.example.net, caddydemo.example.com.au

Caddy能够为任何域名和IP提供TLS服务。此演示是故意受限的。

使用Caddy部署您自己的PKI

Caddy不仅是证书自动化的行业领导者,还提供了一套完整的PKI套件,用于您自己的全自动内部PKI和私有CA。

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

localhost {
	respond "来自 HTTPS 的问候!"
}

192.168.1.10 {
	respond "也是 HTTPS!"
}

http://localhost {
	respond "普通 HTTP"
}

内部和localhost证书

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

Smallstep

创建和使用您自己的CA

Caddy允许您定义所需数量的CA。根证书和中间证书密钥会自动生成,中间证书会在过期前自动续期。

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

{
	pki {
		ca corporate {
			name "我们的企业证书颁发机构"
		}
	}
}

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

保持证书续期

Caddy不仅仅是一个Web服务器。例如,这个配置就是获取和续期一组域名证书所需的全部内容。

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

专家推荐

学术和行业专家推荐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, and Brad Warren. 2019. Let's Encrypt: An Automated Certificate Authority to Encrypt the Entire Web. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security (CCS '19). Association for Computing Machinery, New York, NY, USA, 2473–2487. https://doi.org/10.1145/3319535.3363192

"TLS必须默认启用...而Caddy Web服务器是一个很好的可用示例。"

Katharina Krombholz, Wilfried Mayer, Martin Schmiedecker, and Edgar Weippl. 2017. "I Have No Idea What I'm Doing" - On the Usability of Deploying HTTPS. In 26th USENIX Security Symposium (USENIX Security 17), USENIX Association, Vancouver, BC, 1339-1356. Retrieved from https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/krombholz

"除了Caddy之外,没有流行的服务器软件[实现会话票据密钥轮换]。"

Drew Springall, Zakir Durumeric, and J. Alex Halderman. 2016. Measuring the Security Harm of TLS Crypto Shortcuts. In Proceedings of the 2016 Internet Measurement Conference (IMC '16), Association for Computing Machinery, Santa Monica, California, USA, 33-47. https://doi.org/10.1145/2987443.2987480

一个前瞻性的反向代理

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

代理HTTP、FastCGI、WebSockets等

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

动态后端

为Caddy提供静态后端列表或启用模块在每个请求期间动态检索后端:非常适合快速变化的环境。Caddy与您的基础设施同步发展!

高可用性

Caddy提供了一套完整的高可用性(HA)功能:高级健康检查、优雅(无中断)配置更改、断路器、负载限制、在线重试等。最好的部分是?这一切都是免费的。没有企业级付费墙。

example.com

# 提供 PHP 站点
handle /blog/* {
	root * /var/www/wordpress
	php_fastcgi localhost:9000
	file_server
}

# 代理具有动态后端的自动扩展 API
reverse_proxy /api/* {
	dynamic srv _api._tcp.example.com
}

# 代理具有负载均衡和健康检查的
# 计算密集型分布式服务
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
}

# 将其他所有内容代理到 HTTPS 上游
reverse_proxy https://service.example.com {
	header_up Host {upstream_hostport}
}

软件保障

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

查看赞助信息

生产级静态文件服务器

提供静态文件是一种经过验证的方法,可以高效地向众多客户端交付站点。Caddy有一个强大的文件服务器,可以与其他中间件功能结合,打造终极轻松网站。

压缩

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

虚拟文件系统

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

范围请求、Etags等

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

目录文件浏览器

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

example.com

root * /var/www

# 如果存在预压缩文件则提供预压缩文件
file_server /downloads/* {
	precompressed
}

# 压缩其他所有受益于压缩的内容
encode zstd gzip

# 使用数据库作为文件系统的静态站点
file_server /database/* {
	fs sqlite data.sql 
}

# 嵌入在 Caddy 二进制文件中的静态站点
file_server /embedded/* {
	fs embedded
}

# (范围请求/Etag 等无需额外配置即可工作)

# 提供带目录列表的静态站点
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,为您提供令人难以置信的自动化和大规模部署能力。

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

Caddyfile

虽然JSON提供终极控制,但大多数人更喜欢使用Caddyfile,因为它让您只需几行手写代码就能启动并运行一个生产就绪的站点。Caddyfile通常只有功能较少的nginx配置的约15-25%大小

caddyserver.com

root * src

file_server
templates # Markdown 和语法高亮!
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证书管理器、进程监督器等应用程序。

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

无限能力

几乎所有"做某事"的配置部分都是可插拔的。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应用所需的全部!

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

{
	# 启用 FrankenPHP
	frankenphp
}

example.com {
	# 从当前目录提供 PHP 应用
	php_server
}

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

了解更多

Web服务器的黄金标准

Caddy拥有市场上最强大的TLS堆栈。比OpenSSL(Apache和NGINX)提供更强的内存安全保证,比任何其他服务器或工具提供更高级的证书自动化逻辑,Caddy在其他服务器...不会的情况下保持您的站点在线。

Caddy是第一个完全自动化公共证书管理的服务器—所以我们比任何人都更早开始这样做。管理着超过5000万个证书,Caddy为其他服务器树立了黄金标准。

OCSP装订拯救局面

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

防范撤销

2020年,一次大规模证书撤销事件让许多系统管理员争先恐后地提前续期他们的证书。Caddy自动续期被撤销的证书,所有Caddy站点都未受影响。(这是在ARI存在之前。)

在审计中屹立不倒

公司们在重要审计前几小时就在他们的站点前部署Caddy—可能挽救了他们的合规状态—这要归功于Caddy的安全默认值和"包含电池"的方法。

听听大家的意见

我们有偏见。但由于其易用性、安全默认值、强大的功能集和改变业务的成本降低,Caddy被全球多样化的用户群体广泛依赖和赞誉。