组件分享之后端组件——一个可扩展的服务器平台caddy

组件分享之后端组件——一个可扩展的服务器平台caddy

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

  • 组件:caddy
  • 开源协议:Apache-2.0 License
  • 官网:caddyserver.com

内容

本节我们分享一个可扩展的服务器平台caddy,Caddy 2 是一个强大的、企业级的、开源的 Web 服务器,带有用 Go 编写的 自动 HTTPS,默认使用TLS。Caddy 简化了您的基础架构。它负责 TLS 证书更新、OCSP 装订、静态文件服务、反向代理、Kubernetes 入口等。

概述

Caddy 最常用作 HTTPS 服务器,但它适用于任何长时间运行的 Go 程序。首先,它是一个运行 Go 应用程序的平台。Caddy“应用程序”只是作为 Caddy 模块实现的 Go 程序。两个应用程序 -tls并且http- 标配 Caddy。

Caddy 应用程序立即受益于自动化文档、通过 API进行的优雅在线配置更改以及与其他 Caddy 应用程序的统一。

虽然JSON是 Caddy 的原生配置语言,但 Caddy 可以接受来自配置适配器的输入,这些适配器基本上可以将您选择的任何配置格式转换为 JSON:Caddyfile、JSON 5、YAML、TOML、NGINX 配置等。

配置 Caddy 的主要方法是通过其 API,但如果您更喜欢配置文件,命令行界面也支持这些。

与现有的任何 Web 服务器相比,Caddy 具有前所未有的控制水平。在 Caddy 中,您通常在内存中设置初始化类型的实际值,这些值支持从 HTTP 处理程序和 TLS 握手到存储介质的所有内容。Caddy 的可扩展性也非常可笑,它具有强大的插件系统,可以大大改进其他 Web 服务器。

要使用这种设计的力量,您需要了解配置文档的结构。有关Caddy 配置结构的详细信息,请参阅我们的文档站点。

几乎所有 Caddy 的配置都包含在单个配置文档中,而不是像其他 Web 服务器那样分散在 CLI 标志和环境变量以及配置文件中。这使得管理您的服务器配置更加直接,并减少了隐藏的变量/因素。

特征

  • 使用Caddyfile轻松配置
  • 强大的配置及其原生 JSON 配置
  • 使用JSON API进行动态配置
  • 如果您不喜欢 JSON,请配置适配器
  • 默认 自动 HTTPS
    • ZeroSSL和Let's Encrypt用于公共名称
    • 用于内部名称和 IP 的完全托管的本地 CA
    • 可以与集群中的其他 Caddy 实例协调
    • 多发行人后备
  • 当其他服务器因 TLS/OCSP/证书相关问题而停机时保持正常运行
  • 在处理数万亿个请求并管理数百万个 TLS 证书后,可投入生产
  • 扩展到数以万计的站点......而且可能更多
  • HTTP/1.1、HTTP/2 和实验性 HTTP/3支持
  • 高度可扩展的 模块化架构让 Caddy 做任何事情都不会臃肿
  • 没有外部依赖的****任何地方运行(甚至没有 libc)
  • 用 Go 编写,一种比其他服务器具有更高内存安全保证的语言
  • 其实用起来很有趣
  • 所以,还有更多的发现
本文声明:

88x31.png

知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

你可能感兴趣的:(组件分享之后端组件——一个可扩展的服务器平台caddy)